मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स mat है। हमें मैट्रिक्स की प्रत्येक पंक्ति को चुनना है, फिर पंक्ति को उलटना है। उसके बाद, प्रत्येक बिट को फ्लिप करना है (0 को 1 और 1 को 0 में बदलना)।
यदि इनपुट इस तरह है:
| 1 | 1 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
तो आउटपुट होगा:
| 1 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- track := 0
- mat में प्रत्येक पंक्ति के लिए, करें:
- पंक्ति को उलटें
- tracker := 0
- पंक्ति में प्रत्येक मान val के लिए, करें:
- यदि val 1 है, तो
- mat[track, tracker] := 0
- अन्यथा,
- mat[track, tracker] := 1
- tracker := tracker + 1
- यदि val 1 है, तो
- track := track + 1
- mat लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
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]]