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

पायथन में बेसबॉल गेम


मान लीजिए हमारे पास एक बेसबॉल गेम पॉइंट रिकॉर्डर है। हमारे पास स्ट्रिंग्स की एक सूची है; प्रत्येक स्ट्रिंग निम्न 4 प्रकारों में से एक हो सकती है:

  • पूर्णांक (एक राउंड का स्कोर) - इस राउंड में प्राप्त अंकों को दर्शाता है।
  • "+" (एक राउंड का स्कोर) - दर्शाता है कि इस राउंड में प्राप्त अंक पिछले दो वैध राउंड के अंकों का योग हैं।
  • "D" (एक राउंड का स्कोर) - दर्शाता है कि इस राउंड में प्राप्त अंक पिछले वैध राउंड के अंकों के दोगुने हैं।
  • "C" (एक ऑपरेशन, जो राउंड का स्कोर नहीं है) - दर्शाता है कि पिछले वैध राउंड के अंक अमान्य थे और उन्हें हटा दिया जाना चाहिए।

ध्यान दें कि प्रत्येक राउंड का ऑपरेशन स्थायी है और इसका असर पहले और बाद के राउंड पर पड़ सकता है। हमें सभी राउंड में प्राप्त अंकों का योग ज्ञात करना है।

उदाहरण के लिए, यदि इनपुट ["5","2","C","D","+"] है, तो आउटपुट 30 होगा। यह वास्तव में है:

  • राउंड 1 - हमें 5 अंक मिले। योग: 5।
  • राउंड 2 - हमें 2 अंक मिले। योग: 7।
  • ऑपरेशन 1 - राउंड 2 का डेटा अमान्य था। योग: 5।
  • राउंड 3 - हमें 10 अंक मिले। योग: 15।
  • राउंड 4 - हमें 5 + 10 = 15 अंक मिले। योग: 30।

हल करने के चरण

  • stack := खाली सूची
  • ops में प्रत्येक i के लिए:
    • यदि i "+" के बराबर है, तो:
      • first := stack[stack का आकार - 1], second := stack[stack का आकार - 2]
      • (first + second) को stack के अंत में डालें
    • अन्यथा जब i "D" के बराबर है, तो:
      • (stack के अंतिम तत्व * 2) को stack के अंत में डालें
    • अन्यथा जब i "C" के बराबर है, तो:
      • stack से अंतिम तत्व हटाएं
    • अन्यथा:
      • i को stack के अंत में डालें
  • stack के सभी तत्वों का योग वापस करें

उदाहरण

class Solution:
    def calPoints(self, ops):
        stack = []
        for i in ops:
            if i == "+":
                first, second = stack[len(stack) - 1], stack[len(stack) - 2]
                stack.append(first + second)
            elif i == "D":
                stack.append(stack[-1] * 2)
            elif i == "C":
                stack.pop()
            else:
                stack.append(int(i))
        return sum(stack)

ob = Solution()
print(ob.calPoints(["5","2","C","D","+"]))

इनपुट

["5","2","C","D","+"]

आउटपुट

30
  1. Python में वर्षा जल संग्रहण Python में वर्षा जल संग्रहण

    मान लीजिए हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये एक ऊंचाई मानचित्र दर्शाते हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी है कि बारिश के बाद यह कितना पानी रोक सकता है। इसलिए मानचित्र इस तरह होगा −यहां हम 6 नीले बॉक्स देख सकते हैं, इसलिए आउटपुट 6 होगा।इसे हल करने के लिए, हम इन चरण

  1. पायथन में बाइनरी ट्री कलरिंग गेम पायथन में बाइनरी ट्री कलरिंग गेम

    मान लीजिए दो खिलाड़ी बाइनरी ट्री पर टर्न-बेस्ड गेम खेलते हैं। हमारे पास इस बाइनरी ट्री का रूट और ट्री में नोड्स की संख्या n है। यहां n विषम है, और प्रत्येक नोड का 1 से n तक एक विशिष्ट मान है। पहले, पहला खिलाड़ी 1 <= x <= n के साथ एक मान x नाम देता है, और दूसरा खिलाड़ी 1 <= y <= n के साथ एक मान y नाम

  1. पायथन में Tkinter का उपयोग करके रंग खेल पायथन में Tkinter का उपयोग करके रंग खेल

    GUI एप्लिकेशन विकसित करने के लिए tkinter बहुत लोकप्रिय और आसान है। Tkinter का उपयोग करके आसानी से GUI गेम विकसित किए जा सकते हैं। यहाँ भी हम रंग खेल विकसित करने का प्रयास कर रहे हैं। इस खेल में खिलाड़ी को स्क्रीन पर दिखाई देने वाले शब्द का रंग दर्ज करना होता है और इस तरह स्कोर एक से बढ़ जाता है, इस