मान लीजिए दो खिलाड़ी अमल और बिमल हैं। वे एक खेल खेल रहे हैं। खेल के नियम इस प्रकार हैं:
- दोनों खिलाड़ियों के पास एक ही स्ट्रिंग s है
- दोनों को s के अक्षरों का उपयोग करके सबस्ट्रिंग्स बनाने हैं
- बिमल को व्यंजन से शुरू होने वाले शब्द बनाने हैं
- अमल को स्वर से शुरू होने वाले शब्द बनाने हैं
- खेल तब समाप्त होगा जब दोनों खिलाड़ियों ने सभी संभावित सबस्ट्रिंग्स बना ली हों
अब स्कोरिंग मानदंड इस प्रकार है: एक खिलाड़ी को स्ट्रिंग s में सबस्ट्रिंग की प्रत्येक घटना के लिए 1 अंक मिलता है। हमें इस खेल के विजेता और उसका स्कोर ढूंढना है।
उदाहरण के लिए, यदि इनपुट s = "BANANA" है, तो आउटपुट Bimal, 12 होगा क्योंकि...
| शब्द: BANANA | |||
| अमल | बिमल (विजेता) | ||
| सबस्ट्रिंग | स्कोर | सबस्ट्रिंग | स्कोर |
| A | 3 | B | 1 |
| AN | 2 | N | 2 |
| ANA | 2 | BA | 1 |
| ANAN | 1 | NA | 2 |
| ANANA | 1 | BAN | 1 |
| NAN | 1 | ||
| BANA | 1 | ||
| NANA | 1 | ||
| BANAN | 1 | ||
| BANANA | 1 | ||
| कुल 9 | कुल 12 | ||
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- vowels := स्वरों का एक सेट
- p1 := 0
- p2 := 0
- word में प्रत्येक इंडेक्स i और वर्ण c के लिए, करें
- यदि c स्वर है, तो
- p2 := p2 + word का आकार - i
- अन्यथा,
- p1 := p1 + word का आकार - i
- यदि c स्वर है, तो
- यदि p1 > p2, तो
- 'Bimal', p1 लौटाएं
- अन्यथा जब p2 > p1, तो
- 'Amal', p2 लौटाएं
- अन्यथा,
- 'Draw' लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(word):
vowels = set('AEIOU')
p1 = 0
p2 = 0
for i, c in enumerate(word):
if c in vowels:
p2 += len(word) - i
else:
p1 += len(word) - i
if p1 > p2:
return 'Bimal', p1
elif p2 > p1:
return 'Amal', p2
else:
return 'Draw'
word = "BANANA"
print(solve(word))इनपुट
"BANANA"
आउटपुट
('Bimal', 12)