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

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

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

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

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

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

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

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

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

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

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. पायथन में वर्षा जल को फंसाना

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

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

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

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

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