在 Python 中翻转并反转矩阵
假设我们有一个二进制矩阵 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]]
广告