কম্পিউটার টিউটোরিয়াল

পাইথনে ক্যান্ডি রিমুভ গেমে প্রথম খেলোয়াড় জিতবে কিনা যাচাই করার প্রোগ্রাম

ধরা যাক candies নামক একটি সংখ্যার লিস্ট রয়েছে এবং কেউ তার বন্ধুর বিপক্ষে গেম খেলছে। প্রতিটি রাউন্ডে একজন খেলোয়াড় যেকোনো দুটি একপ্রকার মানবিশিষ্ট আশেপাশের ক্যান্ডি সরাতে পারে। যিনি ক্যান্ডি তুলতে পারবেন না, তিনি হেরে যাবেন। খেলোয়াড় ১ প্রথম শুরু করবেন, আমাদের যাচাই করতে হবে খেলোয়াড় ১ জিতবেন কিনা।

উদাহরণ

ইনপুট: nums = [2, 2, 5]

আউটপুট: True

ব্যাখ্যা: খেলোয়াড় ১ দুটি ২ সরালে অন্য খেলোয়াড় আর কই কিছু তুলতে পারবে না।

সমাধানের ধাপসমূহ

  1. stack := একটি নতুন স্ট্যাক
  2. turns := 0
  3. প্রতিটি num এর জন্য nums-এ:
    • যদি স্ট্যাক খালি না হয় এবং স্ট্যাকের টপ num-এর সমান হয়, তবে:
      • স্ট্যাক থেকে পপ করুন
      • turns := turns + 1
    • অন্যথায়, num স্টാക്കে পুশ করুন
  4. 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
  1. পাইথনে বাইনারি ট্রি সিমেট্রিক (সমমিতি) কিনা যাচাই করা

  2. পাইথনে বাইনারি ট্রি BST কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে লিস্ট খালি কিনা যাচাই করার প্রোগ্রাম