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