समस्या विवरण
एक बाइनरी मैट्रिक्स mat दिया गया है। हमें मैट्रिक्स की प्रत्येक पंक्ति को चुनना है, फिर उसे रिवर्स करना है। उसके बाद प्रत्येक बिट को फ्लिप करना है (0 को 1 और 1 को 0 में बदलना)।
उदाहरण
इनपुट मैट्रिक्स:
| 1 | 1 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
आउटपुट मैट्रिक्स:
| 1 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
एल्गोरिदम
- प्रत्येक पंक्ति के लिए:
- पंक्ति को रिवर्स करें
- पंक्ति के प्रत्येक मान के लिए:
- यदि मान 1 है, तो उसे 0 में बदलें
- अन्यथा (यदि 0 है), तो उसे 1 में बदलें
- संशोधित मैट्रिक्स वापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, mat):
track = 0
for row in mat:
row.reverse()
tracker = 0
for val in row:
if val == 1:
mat[track][tracker] = 0
else:
mat[track][tracker] = 1
tracker += 1
track += 1
return mat
ob = Solution()
mat = [[1,1,0],[0,1,0],[0,0,1]]
print(ob.solve(mat))
इनपुट
[[1,1,0],[0,1,0],[0,0,1]]
आउटपुट
[[1, 0, 0], [1, 0, 1], [0, 1, 1]]