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

पायथन में शून्य मानों के लिए प्रत्येक तत्व को पंक्ति और स्तंभ में शून्य में बदलने का कार्यक्रम


मान लीजिए कि हमारे पास संख्याओं का एक 2D मैट्रिक्स है, अब दिए गए मैट्रिक्स में प्रत्येक शून्य के लिए और इसकी पंक्ति और कॉलम के सभी मानों को शून्य से बदलें, और अंतिम मैट्रिक्स लौटाएं।

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

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

n := row count, m := column count
res := make a matrix of size n x m and fill with 0
transpose := transpose given matrix
for each row i, do
   if 0 not in matrix[i], then
      for each column j in matrix, do
         if 0 not in transpose[j], then
            res[i, j] := matrix[i, j]
return res

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

उदाहरण

class Solution:
   def solve(self, matrix):
      n, m = len(matrix), len(matrix[0])
      res = [[0 for __ in range(m)] for _ in range(n)]
      transpose = [list(row) for row in zip(*matrix)]

      for i in range(n):
         if 0 not in matrix[i]:
            for j in range(m):
               if 0 not in transpose[j]:
                  res[i][j] = matrix[i][j]

      return res

ob = Solution()
matrix = [
      [6, 0, 0, 6, 9],
      [4, 9, 9, 4, 8],
      [0, 8, 3, 4, 2],
      [9, 0, 7, 8, 3],
      [5, 2, 9, 6, 8]
]
print(ob.solve(matrix))

इनपुट

matrix = [ [6, 0, 0, 6, 9], [4, 9, 9, 4, 8], [0, 8, 3, 4, 2], [9, 0, 7, 8, 3], [5, 2, 9, 6, 8] ]

आउटपुट

[[0, 0, 0, 0, 0], [0, 0, 0, 4, 8], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 6, 8]]

  1. बबल सॉर्ट के लिए पायथन प्रोग्राम

    इस लेख में, हम बबल सॉर्टिंग तकनीक के कार्यान्वयन के बारे में जानेंगे। नीचे दिखाया गया आंकड़ा इस एल्गोरिथम की कार्यप्रणाली को दर्शाता है - दृष्टिकोण पहले तत्व (सूचकांक =0) से शुरू करते हुए, वर्तमान तत्व की तुलना सरणी के अगले तत्व से करें। यदि वर्तमान तत्व सरणी के अगले तत्व से बड़ा है, तो उन्

  1. बाइनरी सर्च के लिए पायथन प्रोग्राम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन − हमें एक क्रमबद्ध सूची दी जाएगी और हमें एक द्विआधारी खोज की मदद से एक तत्व खोजने की जरूरत है। एल्गोरिदम x की तुलना मध्य तत्व से करें। यदि x मध्य तत्व से मेल खाता है, तो हम मध्य सूचकांक लौटा

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

    इस लेख में, हम लीनियर सर्च और पायथन 3.x में इसके कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम Start from the leftmost element of given arr[] and one by one compare element x with each element of arr[] If x matches with any of the element, return the index value. If x doesn’t match with