程序检查是否有第一位在糖果游戏中获胜的玩家在Python中移除了游戏?
假设我们有一个称为糖果的数字列表,某人正在与他/她的朋友玩游戏。在每个回合中,玩家可以移除任何两个具有相同值的连续糖果。如果谁不能拿起糖果输了,而那个玩家1首先开始,我们就必须检查玩家1是否会赢。
因此,如果输入类似于nums=[2,2,5],则输出将为True,就像玩家1选择2s一样,其他玩家则不能选择任何糖果。
为了解决这个问题,我们将按照以下步骤操作:
堆栈:=一个新的堆栈
转:=0
对于以num为单位的每个num
将num推入堆栈
从堆栈弹出
转:=转+1
如果堆栈不为空并且堆栈顶部与num相同,则
除此以外,
当转弯为奇数时返回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
热门推荐
10 航空公司祝福语简短
11 春节感恩祝福语简短的
12 给老师祝福语简短创意
13 结婚喜庆的祝福语简短
14 参加儿子大学祝福语简短
15 舅妈生日红包祝福语简短
16 近代生日祝福语简短精辟
17 春季祝福语女生文案简短
18 简短的出行工作祝福语