ধরা যাক candies নামক একটি সংখ্যার লিস্ট রয়েছে এবং কেউ তার বন্ধুর বিপক্ষে গেম খেলছে। প্রতিটি রাউন্ডে একজন খেলোয়াড় যেকোনো দুটি একপ্রকার মানবিশিষ্ট আশেপাশের ক্যান্ডি সরাতে পারে। যিনি ক্যান্ডি তুলতে পারবেন না, তিনি হেরে যাবেন। খেলোয়াড় ১ প্রথম শুরু করবেন, আমাদের যাচাই করতে হবে খেলোয়াড় ১ জিতবেন কিনা।
উদাহরণ
ইনপুট: nums = [2, 2, 5]
আউটপুট: True
ব্যাখ্যা: খেলোয়াড় ১ দুটি ২ সরালে অন্য খেলোয়াড় আর কই কিছু তুলতে পারবে না।
সমাধানের ধাপসমূহ
stack := একটি নতুন স্ট্যাকturns := 0- প্রতিটি
numএর জন্যnums-এ:- যদি স্ট্যাক খালি না হয় এবং স্ট্যাকের টপ
num-এর সমান হয়, তবে:- স্ট্যাক থেকে পপ করুন
turns := turns + 1
- অন্যথায়,
numস্টാക്കে পুশ করুন
- যদি স্ট্যাক খালি না হয় এবং স্ট্যাকের টপ
turnsবিজোড় হলে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