在 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 次浏览

开启你的 职业生涯

完成课程后即可获得认证

开始
广告