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

अजगर में मैट्रिक्स में घिरे द्वीपों की संख्या गिनने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि का प्रतिनिधित्व करता है और 0 पानी का प्रतिनिधित्व करता है। जैसा कि हम जानते हैं कि एक द्वीप 1s का एक समूह है जो एक साथ समूहीकृत होता है जिसकी परिधि पानी से घिरी होती है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ज्ञात करनी है।

तो, अगर इनपुट पसंद है

अजगर में मैट्रिक्स में घिरे द्वीपों की संख्या गिनने का कार्यक्रम

तो आउटपुट 2 होगा, क्योंकि तीन द्वीप हैं, लेकिन उनमें से दो पूरी तरह से घिरे हुए हैं।

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

  • एक फ़ंक्शन को परिभाषित करें dfs() । यह ले जाएगा मैं, जे
  • यदि i और j मैट्रिक्स की सीमा में नहीं हैं, तो
    • झूठी वापसी
  • यदि मैट्रिक्स [i, j] 0 के समान है, तो
    • सही लौटें
  • मैट्रिक्स[i, j] :=0
  • a :=dfs(i + 1, j)
  • b :=dfs(i-1, j)
  • c :=dfs(i, j + 1)
  • d :=dfs(i, j-1)
  • ए और बी और सी और डी लौटाएं
  • मुख्य विधि से निम्न कार्य करें:
  • R:=मैट्रिक्स की पंक्ति गणना, C:=मैट्रिक्स की कॉलम गणना
  • उत्तर:=0
  • 0 से R की श्रेणी में i के लिए, करें
    • जे के लिए 0 से सी की सीमा में, करें
      • यदि मैट्रिक्स [i, j] 1 के समान है, तो
        • यदि dfs(i, j) सत्य है, तो
          • उत्तर:=उत्तर + 1
  • वापसी उत्तर

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

उदाहरण

class Solution:
   def solve(self, matrix):
      def dfs(i, j):
         if i < 0 or j < 0 or i >= R or j >= C:
            return False
         if matrix[i][j] == 0:
            return True
         matrix[i][j] = 0
         a = dfs(i + 1, j)
         b = dfs(i - 1, j)
         c = dfs(i, j + 1)
         d = dfs(i, j - 1)
         return a and b and c and d

      R, C = len(matrix), len(matrix[0])
      ans = 0
      for i in range(R):
         for j in range(C):
            if matrix[i][j] == 1:
               if dfs(i, j):
                  ans += 1
      return ans

ob = Solution()
matrix = [
   [1, 0, 0, 0, 0],
   [0, 0, 0, 1, 0],
   [0, 1, 0, 0, 0],
   [0, 1, 0, 0, 0],
   [0, 1, 1, 1, 0],
   [0, 0, 0, 0, 0]
]
print(ob.solve(matrix))

इनपुट

matrix = [  
[1, 0, 0, 0, 0],  
[0, 0, 0, 1, 0],  
[0, 1, 0, 0, 0],  
[0, 1, 0, 0, 0],  
[0, 1, 1, 1, 0],  
[0, 0, 0, 0, 0] ]

आउटपुट

2

  1. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर

  1. किसी दिए गए स्ट्रिंग में सेट का उपयोग करके स्वरों की संख्या गिनने के लिए पायथन प्रोग्राम

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

  1. एक मैट्रिक्स के स्थानान्तरण को खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक मैट्रिक्स को देखते हुए, हमें उसी मैट्रिक्स में ट्रांसपोज़ को स्टोर करना होगा और उसे प्रदर्शित करना होगा। पंक्तियों को कॉलम और कॉलम को पंक्तियों में बदलकर मैट्रिक्स का स्थानांतरण प्राप्त किया ज