在 Python 中翻轉並反轉矩陣


假設我們有一個二進位制矩陣 mat。我們必須選擇矩陣中的每一行,然後反轉該行。之後,翻轉每一位元(0 變為 1,1 變為 0)。

因此,如果輸入如下所示

110
010
001

那麼輸出將是

100
101
011

為解決這個問題,我們將遵循以下步驟 −

  • track:= 0
  • 對於 mat 中的每一行,執行
    • 反轉行
    • tracker := 0
    • 對於行中的每個 val,執行
      • 如果 val 為 1,那麼
        • mat[track, tracker] := 0
      • 否則,
        • mat[track, tracker] := 1
      • tracker := tracker + 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]]

更新於: 2020-09-23

606 次瀏覽

開啟你的 職業生涯

完成課程後即可獲得認證

開始
廣告