কম্পিউটার

একটি স্ট্যাক বা সারিতে স্থানান্তর সম্ভব কিনা তা পরীক্ষা করুন পাইথনে নয়


ধরুন আমাদের একটি বাইনারি তালিকা আছে, যেখানে 1 বোঝায় পুশ অপারেশন এবং 0 বোঝায় একটি স্ট্যাক বা কিউতে একটি পপ অপারেশন। অপারেশনের সম্ভাব্য সেটটি বৈধ কি না তা আমাদের পরীক্ষা করতে হবে৷

সুতরাং, যদি ইনপুটটি nums =[1,0,1,1,0,1] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ ক্রমটি [Push,Pop,Push,Push,Pop,Push] যেমন আমরা নই। খালি তালিকা থেকে পপিং উপাদান তাই এই অপারেশনগুলি বৈধ৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • পুশ_কাউন্ট :=0
  • আমি 0 থেকে সংখ্যার আকার - 1 এর মধ্যে, কর
    • যদি সংখ্যা[i] 1 হয়, তাহলে
      • push_count :=push_count + 1
    • অন্যথায়,
      • পুশ_গণনা :=পুশ_গণনা - 1
    • যদি push_count <0 হয়, তাহলে
      • মিথ্যে ফেরত দিন
  • সত্য ফেরান

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(nums):
   push_count = 0
   for i in range (len(nums)):
      if nums[i]:
         push_count += 1
      else:
         push_count -= 1
      if push_count < 0:
         return False
   return True
nums = [1,0,1,1,0,1]
print(solve(nums))

ইনপুট

[1,0,1,1,0,1]

আউটপুট

True

  1. পাইথনে বিভিন্ন বন্ধনী সুষম এবং সুগঠিত কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে দুটি তালিকা অভিন্ন কিনা তা পরীক্ষা করুন

  3. পাইথন - একটি তালিকার সমস্ত উপাদান একই কিনা তা পরীক্ষা করুন

  4. কিউ মডিউল ব্যবহার করে পাইথনে স্ট্যাক এবং কিউ