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

पायथन में आसपास के क्षेत्र

मान लीजिए कि हमारे पास X और O वाला 2D बोर्ड है। X से घिरे सभी क्षेत्रों को कैप्चर करें। उस क्षेत्र में सभी Os को Xs में बदलकर एक क्षेत्र कैप्चर किया जाता है।

X X X X
X X
X X X
X X X

आउटपुट चलाने के बाद होगा

X X X X
X X X X
X X X X
X X X

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

  • यदि बोर्ड मौजूद नहीं है, तो खाली बोर्ड लौटाएं
  • i के लिए 0 से लेकर पंक्तियों की संख्या तक - 1 -
    • अगर बोर्ड[i, 0] ='O', तो make_one(board, i, 0)
    • यदि बोर्ड[i, पंक्ति की लंबाई - 1] ='O', तो make_one(बोर्ड, i, पंक्ति की लंबाई -1)
  • i के लिए 0 से लेकर कॉल्स की संख्या तक - 1 −
    • अगर बोर्ड[0, i] ='O', तो make_one(board, 0, i)
    • यदि बोर्ड [पंक्ति की संख्या -1, i] ='O', तो make_one(बोर्ड, पंक्ति की संख्या -1, i)
  • i के लिए 0 से लेकर पंक्तियों की संख्या तक
    • जे के लिए 0 से लेकर कॉल्स की संख्या तक
      • यदि बोर्ड[i, j] ='O', तो बोर्ड[i, j] ='X', अन्यथा 1 के लिए, बोर्ड[i, j] ='O'
  • make_one जैसा होगा -
  • अगर मैं <0 या j <0 या i>=पंक्ति गणना या j>=कॉल गणना या बोर्ड[i, j] ='X' या बोर्ड[i, j] ='1', तो वापस आएं
  • बोर्ड[i, j] :=1
  • कॉल करें make_one(voard, i + 1, j), make_one(voard, i-1, j), make_one(voard, i, j + 1), make_one(voard, i, j-1)

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

उदाहरण

class Solution(object):
   def solve(self, board):
      if not board:
         return board
      for i in range(len(board)):
         if board[i][0]=='O':
            self.make_one(board,i,0)
         if board[i][len(board[0])-1] == 'O':
            self.make_one(board,i,len(board[0])-1)
      for i in range(len(board[0])):
         if board[0][i]=='O':
            self.make_one(board,0,i)
         if board[len(board)-1][i] == 'O':
            self.make_one(board,len(board)-1,i)
      for i in range(len(board)):
         for j in range(len(board[i])):
            if board[i][j]=='O':
               board[i][j]='X'
            elif board[i][j]=='1':
               board[i][j]='O'
      return board
   def make_one(self, board,i,j):
      if i<0 or j<0 or i>=len(board) or j>=len(board[0]) or board[i][j]=='X' or board[i]   [j]=='1':
         return
      board[i][j]='1'
      self.make_one(board,i+1,j)
      self.make_one(board,i-1,j)
      self.make_one(board,i,j+1)
      self.make_one(board,i,j-1)
ob1 = Solution()
print(ob1.solve([["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]))

इनपुट

[["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]

आउटपुट

[['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'O', 'X', 'X']]

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

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

  1. issuperset () पायथन में

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

  1. पायथन में क्विन

    क्विन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता है, लेकिन यह आउटपुट का उत्पादन करता है। यह इसका अपना सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्विन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) य