মান লিজিয়ে আমাদের একটি বাইনারি লিস্ট আছে, যেখানে ১ ধাঁকা পUSH অপারেশন এবং ০ ধাঁকা পপ (pop) অপারেশন একটি স্ট্যাক বা কিউ-তে। আমাদের যাচাই করতে হবে অপারেশন সেটটি বৈধ কিনা।
যেমন, ইনপুট যদি nums = [1,0,1,1,0,1] হয়, তবে আউটপুট হবে True কারণ সিকোয়েন্স হল [Push,Pop,Push,Push,Pop,Push] কারণ আমরা খালি লিস্ট থেকে পপ করছি না তাই এই অপারেশনগুলো বৈধ।
সমাধানের ধাপসমূহ
push_count := 0i০ থেকেnums-এর সাইজ - ১ পর্যন্ত, করুন:- যদি
nums[i]১ হয়, তবে:push_count := push_count + 1
- অন্যথায়:
push_count := push_count - 1
- যদি
push_count < 0হয়, তবে:Falseরিটার্ন করুন
- যদি
Trueরিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
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