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

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


मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है, हमें मैट्रिक्स में द्वीपों की संख्या ढूंढनी है। यहां 1 भूमि के लिए है और 0 पानी के लिए, इसलिए एक द्वीप 1 का एक समूह है जो पड़ोसी हैं और जिसकी परिधि पानी से घिरी हुई है। यहां हम पड़ोसियों को केवल क्षैतिज या लंबवत मान रहे हैं, विकर्ण नहीं।

इसलिए, यदि इनपुट इस तरह है

10100
00100
01100
00000
11011
11101

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

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

  • एक फ़ंक्शन explore() परिभाषित करें। यह row, col, matrix लेगा
  • यदि row और col मैट्रिक्स की रेंज में नहीं हैं या matrix[row, col] 0 है, तो
    • वापस लौटें
  • matrix[row, col] := 0
  • explore(row + 1, col, matrix)
  • explore(row - 1, col, matrix)
  • explore(row, col + 1, matrix)
  • explore(row, col - 1, matrix)
  • मुख्य विधि से, निम्नलिखित करें −
  • यदि matrix null है, तो
    • 0 वापस करें
  • islands := 0
  • row के लिए 0 से मैट्रिक्स की पंक्ति संख्या तक की रेंज में, करें
    • col के लिए 0 से मैट्रिक्स की कॉलम संख्या तक की रेंज में, करें
      • यदि matrix[row, col], 1 के समान है, तो
        • islands := islands + 1
        • explore(row, col, matrix)
  • islands वापस करें

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

उदाहरण

class Solution:    def explore(self, row, col, matrix):    if (          row < 0 or col < 0 or row > len(matrix) - 1 or col > len (matrix[0]) - 1 or          matrix[row][col] == 0):          return       matrix[row][col] = 0       self.explore(row + 1, col, matrix)       self.explore(row - 1, col, matrix)       self.explore(row, col + 1, matrix)       self.explore(row, col - 1, matrix)       def solve(self, matrix):          if not matrix:             return 0          islands = 0          for row in range(len(matrix)):             for col in range(len(matrix[0])):                if matrix[row][col] == 1:                   islands += 1                   self.explore(row, col, matrix)          return islands ob = Solution() matrix = [    [1, 0, 1, 0, 0],    [0, 0, 1, 0, 0],    [0, 1, 1, 0, 0],    [0, 0, 0, 0, 0],    [1, 1, 0, 1, 1],    [1, 1, 1, 0, 1] ] print(ob.solve(matrix))

इनपुट

[    [1, 0, 1, 0, 0],    [0, 0, 1, 0, 0],    [0, 1, 1, 0, 0],    [0, 0, 0, 0, 0],    [1, 1, 0, 1, 1],    [1, 1, 1, 0, 1] ]

आउटपुट

4

  1. पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास (u, v) के रूप में एज की सूची है जो एक ट्री दर्शाती है। प्रत्येक एज के लिए हमें उन अद्वितीय पथों की कुल संख्या ज्ञात करनी है जिनमें वह एज शामिल है, उसी क्रम में जैसे इनपुट में दिया गया है। उदाहरण के लिए, यदि इनपुट है edges = [[0, 1],[0, 2],[1, 3],[1, 4]], तो आउटपुट [6, 4, 4, 4] ह

  1. मैट्रिक्स में पूरी तरह से घिरे हुए द्वीपों की संख्या गिनने का पायथन प्रोग्राम मैट्रिक्स में पूरी तरह से घिरे हुए द्वीपों की संख्या गिनने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि दर्शाता है और 0 पानी दर्शाता है। जैसा कि हम जानते हैं एक द्वीप 1 का समूह है जो एक साथ जुड़े हुए हैं जिसकी परिधि पानी से घिरी हुई है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ढूंढनी है। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट 2 होगा,

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

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