Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में मिनियन गेम के विजेता का स्कोर और नाम खोजने का प्रोग्राम


मान लीजिए दो खिलाड़ी अमल और बिमल हैं। वे एक खेल खेल रहे हैं। खेल के नियम इस प्रकार हैं:

  • दोनों खिलाड़ियों के पास एक ही स्ट्रिंग 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
  • यदि 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)
  1. - Python से ऐरे गेम का विनर कैसे ढूंढें (k कंसेक्यूटिव विन्स)?

    ऐरे के पहले दो एलिमेंट्स कंपेयर करें: बड़ा इंडेक्स 0 पर रहता है, छोटा अंत में जाता है। k कंसेक्यूटिव विन्स वाला विनर ढूंढें। एल्गोरिदम prev = arr[0], count = 0। i=1 से n-1 तक: अगर arr[i] तो count++, वरना prev = arr[i], count = 1। अगर count == k तो prev रिटर्न। लूप खत्म होने पर prev रिटर्न (मैक्स ए

  1. - पायथन में नंबर डिलीट करके अधिकतम एडिटिव स्कोर खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है। एक ऑपरेशन पर विचार करें जहां हम एक नंबर चुनते हैं, उसे हटाते हैं और अपना स्कोर उस नंबर और उसके दो आसन्न नंबरों के योग से बढ़ाते हैं। हम इस ऑपरेशन को जितनी बार चाहें कर सकते हैं जब तक हम लिस्ट के पहले या आखिरी नंबर को नहीं चुनते। हमें अधिकतम संभव

  1. - पायथन में x, y, z अक्षरों की i, j, k संख्या वाले सबसीक्वेंस की संख्या ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास x, y और z के साथ एक स्ट्रिंग s है, हमें उन सबसीक्वेंस की संख्या ढूंढनी है जिनमें i संख्या के x कैरेक्टर्स हैं, उसके बाद j संख्या के y कैरेक्टर्स और उसके बाद k संख्या के z कैरेक्टर्स हैं जहां i, j, k ≥ 1। तो, अगर इनपुट है s = xxyz, तो आउटपुट 3 होगा, क्योंकि हम दो xyz और एक xxyz