Syntax error Program to check whether first player win in candy remove game or not in Python?

Program to check whether first player win in candy remove game or not in Python?



Suppose we have a list of numbers called candies and someone is playing a game against his/her friend. In each round, a player can remove any two consecutive candies with the same value. And whoever can not pick up a candy loses and that player1 start first, we have to check whether player1 will win or not.

So, if the input is like nums = [2, 2, 5], then the output will be True, as if player1 picks the 2s then the other player cannot pick any candies.

To solve this, we will follow these steps:

  • stack := a new stack

  • turns := 0

  • for each num in nums, do

    • if stack is not empty and top of stack is same as num, then

      • pop from stack

      • turns := turns + 1

    • otherwise,

      • push num into stack

  • return true when turns is odd otherwise false


Example

 Live Demo

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))

Input

[2, 2, 5]

Output

True
Updated on: 2020-11-10T08:17:11+05:30

204 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements