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

दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम


मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें जांचना है कि क्या दोनों ट्री में बाएं से दाएं लीफ का अनुक्रम समान है।

उदाहरण के लिए, यदि इनपुट इस तरह है:

दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम

तो आउटपुट True होगा क्योंकि दोनों ट्री के लिए अनुक्रम [2, 6] है।

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

  • c := एक नई सूची
  • एक फ़ंक्शन inorder() परिभाषित करें। यह root और c लेगा
  • यदि c नल है, तो
    • c := एक नई सूची
  • यदि root नल नहीं है, तो
    • inorder(root का बायाँ, c)
    • यदि root का बायाँ नल है और root का दायाँ नल है, तो
      • root के मान को c के अंत में डालें
    • inorder(root का दायाँ, c)
  • c लौटाएं
  • मुख्य विधि से निम्न करें:
  • यदि inorder(root0), inorder(root1) के समान है, तो
    • सत्य लौटाएं
  • अन्यथा,
    • असत्य लौटाएं

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

उदाहरण

class TreeNode:
    def __init__(self, data, left=None, right=None):
        self.val = data
        self.left = left
        self.right = right

class Solution:
    c = []
    def inorder(self, root, c=None):
        if c is None:
            c = []
        if root:
            self.inorder(root.left, c)
            if not root.left and not root.right:
                c.append(root.val)
            self.inorder(root.right, c)
        return c
    def solve(self, root0, root1):
        if self.inorder(root0) == self.inorder(root1):
            return True
        else:
            return False

ob = Solution()
root1 = TreeNode(1)
root1.right = TreeNode(3)
root1.right.left = TreeNode(2)
root1.right.right = TreeNode(6)
root2 = TreeNode(1)
root2.left = TreeNode(3)
root2.right = TreeNode(6)
root2.left.left = TreeNode(2)
print(ob.solve(root1, root2))

इनपुट

root1 = TreeNode(1)
root1.right = TreeNode(3)
root1.right.left = TreeNode(2)
root1.right.right = TreeNode(6)
root2 = TreeNode(1)
root2.left = TreeNode(3)
root2.right = TreeNode(6)
root2.left.left = TreeNode(2)

आउटपुट

True

  1. बाइनरी ट्री को रंगने की संभावना जांचने का पायथन प्रोग्राम जहां कोई आसन्न नोड्स समान रंग के न हों बाइनरी ट्री को रंगने की संभावना जांचने का पायथन प्रोग्राम जहां कोई आसन्न नोड्स समान रंग के न हों

    मान लीजिए हमारे पास एक बाइनरी ट्री है जहां प्रत्येक नोड का मान उसका रंग दर्शाता है। एक ट्री में अधिकतम 2 रंग होते हैं। हमें जांचना है कि क्या नोड्स के रंगों को किसी भी संख्या में स्वैप करके ऐसा करना संभव है कि कोई दो जुड़े हुए नोड्स का रंग समान न हो। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट T

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

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

  1. - सूची खाली है या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण एक खाली सूची दी गई है। हमारा कार्य जांचना है कि यह सूची खाली है या नहीं। यहां हम जांचने का एक निहित तरीका उपयोग करते हैं। एल्गोरिदम हम एक खाली सूची लेते हैं। फिर जांचें कि यदि सूची खाली है तो 1 लौटाएं अन्यथा 0। उदाहरण कोड # खाली सूची की जांच के लिए पायथन कोड def checklist(A): if