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

प्रोग्राम यह जांचने के लिए कि क्या हम पायथन में सभी पाठ्यक्रम ले सकते हैं या नहीं

मान लीजिए कि हमारे पास एक 2डी मैट्रिक्स है जहां मैट्रिक्स [i] पाठ्यक्रम में दाखिला लेने के लिए आवश्यक पूर्वापेक्षा पाठ्यक्रमों की सूची का प्रतिनिधित्व करता है। अब, हमें यह देखना होगा कि सभी कोर्स करना संभव है या नहीं।

इसलिए, यदि इनपुट मैट्रिक्स =[[1],[2],[]] जैसा है, तो आउटपुट ट्रू होगा, क्योंकि हम कोर्स 2, फिर कोर्स 1, और फिर कोर्स 0 ले सकते हैं।

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

  • फ़ंक्शन dfs () को परिभाषित करें। इसमें मुझे लगेगा

  • अगर विज़ [i] सत्य है, तो

    • झूठी वापसी

  • अगर chk[i] सच है, तो

    • सही लौटें

  • vis[i]:=सच

  • मैट्रिक्स [i] में प्रत्येक j के लिए, करें

    • अगर dfs(j) गलत है, तो

      • झूठी वापसी

  • vis[i]:=असत्य

  • chk[i]:=सच

  • सही लौटें

  • मुख्य विधि से, निम्न कार्य करें -

  • vis:=मैट्रिक्स की पंक्ति गणना के समान आकार की एक सूची और शुरू में सभी गलत हैं

  • chk:=मैट्रिक्स की पंक्ति गणना के समान आकार की एक सूची और शुरू में सभी गलत हैं

  • मैं के लिए 0 से लेकर मैट्रिक्स की पंक्ति गणना तक, करें

    • अगर dfs(i) गलत है, तो

      • झूठी वापसी

  • सही लौटें

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

उदाहरण

class Solution:
   def solve(self, matrix):
      vis=[False for _ in matrix]
      chk=[False for _ in matrix]
      def dfs(i):
         if vis[i]: return False
         if chk[i]: return True
         vis[i]=True
         for j in matrix[i]:
            if not dfs(j):
               return False
         vis[i]=False
         chk[i]=True
         return True
   for i in range(len(matrix)):
      if not dfs(i):
         return False
   return True
ob = Solution()
matrix = [ [1], [2], [] ]
print(ob.solve(matrix))

इनपुट

matrix = [
   [1],
   [2],
   []
]

आउटपुट

True

  1. पायथन में विषम लंबाई चक्र एक ग्राफ में है या नहीं यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, तो हमें यह जांचना होगा कि हम इसके अंदर एक विषम लंबाई चक्र ढूंढ सकते हैं या नहीं। तो, अगर इनपुट adj_list =[[1, 2], [0, 3, 4], [0, 3, 4], [1, 2, 4], [1, 2, 3]] तब आउटपुट सही होगा क्योंकि [0, 1, 3, 4, 2], [1, 3, 4], [2, 3, 4] जैसे विषम लंबाई के चक्र है

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

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

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

    एक खाली सूची दी। हमारा काम मौसम की जांच करना है कि यह सूची खाली है या नहीं। यहाँ हम जाँच करते हैं जाँच का एक निहित तरीका है। एल्गोरिदम Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. उदाहरण कोड # Python code to check for empty list def checklist(A):