假设我们有一个二进制矩阵A,它是图像的表示形式,我们想水平翻转图像,然后将其反转,最后返回结果图像。要水平翻转图像,图像的每一行都将反转。为了反转图像,每个0将被替换为1,并且每个1将被替换为0。
所以,如果输入像
1 | 1 | 0 |
1 | 0 | 1 |
0 | 0 | 0 |
那么输出将是
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
为了解决这个问题,我们将遵循以下步骤-
结果:=一个新列表
对于A中的每一行,
如果Reverse [j]与1相同,则
除此以外,
反转[j]:= 0
反转[j]:= 1
反向:=反向行i
对于范围在0到反向大小之间的j,执行
在结果末尾插入反向
返回结果
让我们看下面的实现以更好地理解-
class Solution: def flipAndInvertImage(self, A): result=[] for i in A: Reverse=i[::-1] for j in range(len(Reverse)): if Reverse[j]==1: Reverse[j]=0 else: Reverse[j]=1 result.append(Reverse) return result ob = Solution()print(ob.flipAndInvertImage([[1,1,0],[1,0,1],[0,0,0]]))
[[1,1,0],[1,0,1],[0,0,0]]
输出结果
[[1, 0, 0], [0, 1, 0], [1, 1, 1]]