Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

दिए गए पुश-पॉप अनुक्रम वैध हैं या नहीं जांचने का पायथन प्रोग्राम


मान लीजिए हमारे पास pushes नामक संख्याओं की एक सूची है, और pops नामक संख्याओं की एक और सूची है, हमें जांचना है कि क्या यह स्टैक पुश और पॉप क्रियाओं का एक वैध अनुक्रम है या नहीं।

उदाहरण के लिए, यदि इनपुट pushes = [1, 2, 5, 7, 9] pops = [2, 1, 9, 7, 5] है, तो आउटपुट True होगा, क्योंकि हम पहले [1, 2] पुश कर सकते हैं फिर दोनों को पॉप कर सकते हैं। फिर [5, 7, 9] पुश करें और उन सभी को पॉप करें।

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:

  • s := एक नया स्टैक
  • i := 0
  • प्रत्येक ele के लिए pushes में, करें
    • ele को s में पुश करें
    • जब तक s का आकार > 0 और pops[i], s के शीर्ष तत्व के समान है, करें
      • s से शीर्ष तत्व हटाएं
      • 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

  1. Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें यह जांचना है कि ट्री सममित ट्री है या नहीं। एक ट्री को सममित कहा जाएगा यदि यह उसके दर्पण छवि लेने पर समान हो। इन दो ट्री में से पहला सममित है, लेकिन दूसरा नहीं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे। हम निम्नलिखित चरणों को रिकर्सिवली कॉल करे

  1. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

    मान लीजिए हमारे पास एक अविकल्पित ग्राफ है, हमें जांचना है कि ग्राफ द्विभाजित है या नहीं। जैसा कि हम जानते हैं, एक ग्राफ द्विभाजित होता है जब हम ग्राफ के नोड्स को दो सेट A और B में विभाजित कर सकते हैं ताकि ग्राफ में प्रत्येक किनारा {u,v} का एक नोड u A में और दूसरा नोड v B में हो। उदाहरण के लिए, यदि

  1. पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग कीवर्ड है या नहीं पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग कीवर्ड है या नहीं

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें जांचना है कि यह स्ट्रिंग पायथन का कीवर्ड है या नहीं। कीवर्ड किसी भी भाषा द्वारा आरक्षित विशेष शब्द होते हैं जिनका विशिष्ट उपयोग होता है और उन्हें पहचानकर्ता के रूप में उपयोग नहीं किया जा सकता। यह जां