मान लीजिए कि हमारे पास पुश नामक संख्याओं की एक सूची है, और पॉप नामक संख्याओं की एक और सूची है, तो हमें यह जांचना होगा कि यह स्टैक पुश और पॉप क्रियाओं का एक मान्य अनुक्रम है या नहीं।
इसलिए, यदि इनपुट पुश की तरह है =[1, 2, 5, 7, 9] पॉप =[2, 1, 9, 7, 5], तो आउटपुट ट्रू होगा, क्योंकि हम [1, 2] को पुश कर सकते हैं। पहले उन दोनों को पॉप करें। फिर [5, 7, 9] को पुश करें और उन सभी को पॉप करें।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- s :=एक नया स्टैक
- मैं :=0
- धक्का में प्रत्येक हाथी के लिए, करें
- एली को एस में पुश करें
- जबकि s> 0 का आकार और पॉप [i] s का एक ही शीर्ष तत्व है, do
- एस से शीर्ष तत्व हटाएं
- i :=i + 1
- सच तभी लौटें जब s का आकार 0 के समान हो, अन्यथा गलत हो
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, pushes, pops): s = [] i = 0 for ele in pushes: s.append(ele) while len(s) > 0 and pops[i] == s[-1]: s.pop() i += 1 return len(s) == 0 ob = Solution() pushes = [1, 2, 5, 7, 9] pops = [2, 1, 9, 7, 5] print(ob.solve(pushes, pops))
इनपुट
[1, 2, 5, 7, 9], [2, 1, 9, 7, 5]
आउटपुट
True