Python程式:檢查糖果移除遊戲中第一個玩家是否獲勝
假設我們有一列數字,稱為糖果,有人正在與朋友玩遊戲。在每一輪中,玩家可以移除任何兩個值相同的連續糖果。任何不能再拾取糖果的人輸掉遊戲,並且玩家1先開始,我們需要檢查玩家1是否會獲勝。
因此,如果輸入像nums = [2, 2, 5],則輸出為True,因為如果玩家1選擇2,則另一位玩家無法拾取任何糖果。
為了解決這個問題,我們將遵循以下步驟
棧 := 一個新的棧
回合 := 0
對於nums中的每個數字,執行以下操作:
如果棧不為空且棧頂與數字相同,則
從棧中彈出
回合 := 回合 + 1
否則,
將數字壓入棧
如果回合數為奇數,則返回true,否則返回false
示例
class Solution: def solve(self, nums): stack = [] turns = 0 for num in nums: if stack and stack[-1] == num: stack.pop() turns += 1 else: stack.append(num) return bool(turns & 1) ob = Solution() nums = [2, 2, 5] print(ob.solve(nums))
輸入
[2, 2, 5]
輸出
True
廣告