ধরুন আমাদের একটি বাইনারি তালিকা আছে, যেখানে 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 হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি সংখ্যা[i] 1 হয়, তাহলে
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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