Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Baseball Game ใน Python: คำนวณคะแนนเกมเบสบอลจากอัปเดตต่าง ๆ

มีรายการอัปเดตคะแนน 4 ประเภท: ตัวเลข (คะแนนรอบ), "+" (ผลรวม 2 รอบล่าสุด), "D" (สองเท่ารอบล่าสุด), "C" (ยกเลิกรอบล่าสุด) ใช้ stack จัดการ คืนผลรวมคะแนนทั้งหมด

ตัวอย่าง

["5","2","C","D","+"] → รอบ1:5, รอบ2:2, C:ลบ2, D:2×5=10, +:5+10=15 → ผลรวม 30

ขั้นตอนการแก้ปัญหา

  1. stack = []
  2. วนแต่ละ op:
    • "+": push stack[-1] + stack[-2]
    • "D": push stack[-1] * 2
    • "C": pop
    • ตัวเลข: push int(op)
  3. คืน sum(stack)

การติดตั้งใน Python

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

อินพุต / เอาต์พุต

Input: ["5","2","C","D","+"]
Output: 30