在 Python 中翻转和反转矩阵

pythonserver side programmingprogramming更新于 2025/12/26 7:40:17

假设我们有一个二进制矩阵 mat。我们必须选择矩阵中的每一行,然后反转该行。之后,翻转每个位(将 0 翻转为 1,将 1 翻转为 0)。

因此,如果输入如下

110
010
001

则输出将是

100
101
01

为了解决这个问题,我们将遵循以下步骤 −

  • 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]]

相关文章


有用资源