मान लीजिए हमारे पास एक बाइनरी सूची है, जहां 1 पुश ऑपरेशन को दर्शाता है और 0 स्टैक या क्यू पर पॉप ऑपरेशन को दर्शाता है। हमें यह जांचना है कि ऑपरेशन का संभावित सेट वैध है या नहीं।
तो, यदि इनपुट nums = [1,0,1,1,0,1] है, तो आउटपुट True होगा क्योंकि अनुक्रम [Push,Pop,Push,Push,Pop,Push] है क्योंकि हम खाली सूची से एलिमेंट पॉप नहीं कर रहे हैं इसलिए ये ऑपरेशन वैध हैं।
हल करने के चरण
- push_count := 0
- रेंज 0 से nums के आकार - 1 तक के लिए i, करें:
- यदि nums[i] 1 है, तो:
- push_count := push_count + 1
- अन्यथा,
- push_count := push_count - 1
- यदि push_count < 0, तो:
- False लौटाएं
- यदि nums[i] 1 है, तो:
- 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