কম্পিউটার টিউটোরিয়াল

পাইথনে বেসবল গেম (Baseball Game) পয়েন্ট ক্যালকুলেশন


সমস্যা বিবরণ

বেসবল গেমের অপারেশন লিস্ট দেওয়া থাকে:

  • ইন্টিজার — রাউন্ডের পয়েন্ট।
  • "+" — গত দুটি বৈধ রাউন্ডের যোগফল।
  • "D" — গত বৈধ রাউন্ডের দ্বিগুণ।
  • "C" — গত বৈধ রাউন্ড বাতিল (রিমুভ)।
সব রাউন্ডের মোট পয়েন্ট বের করুন।

উদাহরণ

ops = ["5","2","C","D","+"] → আউটপুট: 30

Round 1: 5 (sum=5), Round 2: 2 (sum=7), C: 2 বাতিল (sum=5), Round 3: D→10 (sum=15), Round 4: +→15 (sum=30)।

এলগরিদম (Stack)

  1. stack = []।
  2. প্রতিটি op এর জন্য:
    • "+" → stack.append(stack[-1] + stack[-2])।
    • "D" → stack.append(stack[-1] * 2)।
    • "C" → stack.pop()।
    • সংখ্যা → stack.append(int(op))।
  3. return sum(stack)।

পাইথন বাস্তবায়ন

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

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

ইনপুট / আউটপুট

ইনপুট: ["5","2","C","D","+"]
আউটপুট: 30
  1. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়ত

  2. পাইথনে রেইন ওয়াটার ট্র্যাপিং

  3. পাইথনে বাইনারি ট্রি কলারিং গেম

  4. পাইথন Tkinter-এ কালার গেম তৈরি