मान लीजिए हमारे पास संख्याओं का ढेर है; हमें यह जांचना होगा कि स्टैक में मान लगातार जोड़ीदार हैं या नहीं। ये जोड़े बढ़ या घट सकते हैं। यदि स्टैक में विषम संख्या में मान हैं, तो शीर्ष तत्व एक जोड़ी से बाहर रह जाता है। और हमें जाँच के बाद मूल स्टैक सामग्री को बनाए रखना चाहिए।
इस समस्या को हल करने के लिए, हम पुश, पॉप नामक स्टैक पर तीन ऑपरेशन का उपयोग कर सकते हैं और जांच सकते हैं कि स्टैक खाली है या नहीं।
इसलिए, यदि इनपुट stk =[5, 6, -4, -5, 12, 11, 6, 7, 22] जैसा है, तो आउटपुट सही होगा क्योंकि शीर्ष तत्व 22 को हटाने के बाद जोड़े हैं [(5 , 6), (-4, -5), (12, 11), (6, 7)] सभी क्रमागत हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- अस्थायी:=stk से तत्वों को पॉप करें और अस्थायी में धकेलें
- स्टैक stk साफ़ करें
- झंडा :=सच
- अस्थायी का आकार> 1, करते समय
- item_first, item_second:=temp के शीर्ष दो तत्व और उन्हें पॉप करें
- अगर |आइटम_फर्स्ट-आइटम_सेकंड| 1 नहीं है, तो
- झंडा :=झूठा
- आइटम_फर्स्ट और आइटम_सेकंड को stk में पुश करें
- यदि तापमान का आकार 1 के समान है, तो
- अस्थायी के शीर्ष को stk में धकेलें
- वापसी का झंडा
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
def solve(stk): temp = stk[::-1] stk.clear() flag = True while len(temp) > 1: item_first = temp[-1] temp.pop() item_second = temp[-1] temp.pop() if abs(item_first - item_second) != 1: flag = False stk.append(item_first) stk.append(item_second) if len(temp) == 1: stk.append(temp[-1]) return flag stk = [5, 6, -4, -5, 12, 11, 6, 7, 22] print(solve(stk))
इनपुट
[5, 6, -4, -5, 12, 11, 6, 7, 22]
आउटपुट
True