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

पायथन में जांचें कि दिया गया ग्राफ ट्री का समूह (फॉरेस्ट) है या नहीं


मान लीजिए हमारे पास एक ग्राफ है, जिसे किनारों की सूची के रूप में दर्शाया गया है। हमें जांचना है कि क्या ग्राफ ट्री का संग्रह (फॉरेस्ट) है या नहीं।

उदाहरण के लिए, यदि इनपुट निम्न ग्राफ है:

पायथन में जांचें कि दिया गया ग्राफ ट्री का समूह (फॉरेस्ट) है या नहीं

तो आउटपुट True होगा।

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे (DFS साइकिल डिटेक्शन):

  • dfs(node, prev) फ़ंक्शन परिभाषित करें।

  • यदि node in seen, तो False लौटाएं (साइकिल मिली)।

  • seen.add(node)।

  • प्रत्येक आसन्न नोड n के लिए e[node] में:

    • यदि n != prev:

      • यदि dfs(n, node) गलत है, तो False लौटाएं।

  • True लौटाएं।

  • मुख्य विधि से:

    • e := डिफॉल्टडिक्ट(list)।

    • प्रत्येक किनारे (u, v) के लिए: e[u].append(v); e[v].append(u)।

    • seen := set()।

    • प्रत्येक node के लिए e में:

      • यदि node not in seen और dfs(node, -1) गलत है, तो False लौटाएं।

    • True लौटाएं।

उदाहरण

from collections import defaultdict class Solution:    def solve(self, edges):       e = defaultdict(list)       for t,f in edges:          e[t].append(f)          e[f].append(t)       seen = set()       def dfs(node, prev):          if node in seen:             return False          seen.add(node)          for adj in e[node]:          if adj != prev:             if not dfs(adj, node):                return False          return True    for node in e:       if node not in seen and not dfs(node, -1):          return False    return True ob = Solution() edges = [[0, 1],[0, 2],[4, 3]] print(ob.solve(edges))

इनपुट

[[0, 1],[0, 2],[4, 3]]

आउटपुट

True

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

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

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

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

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

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