Given a binary matrix
A
, we want to flip the image horizontally, then invert it, and return the resulting image.To flip an image horizontally means that each row of the image is reversed. For example, flipping
[1, 1, 0]
horizontally results in[0, 1, 1]
.To invert an image means that each
0
is replaced by1
, and each1
is replaced by0
. For example, inverting[0, 1, 1]
results in[1, 0, 0]
.Example 1:
Input: [[1,1,0],[1,0,1],[0,0,0]] Output: [[1,0,0],[0,1,0],[1,1,1]] Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]]. Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]
Example 2:
Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]] Output: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]] Explanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]]. Then invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
按照题目要求先reversed再invert就好啦
使用了listcomp
class Solution:
def flipAndInvertImage(self, A):
"""
:type A: List[List[int]]
:rtype: List[List[int]]
"""
'''reversed->invert'''
for i in range(len(A)):
A[i] = reversed(A[i])
A[i] = [(k+1)%2 for k in A[i]]
return A
2记录 一个discussion里的解法
class Solution(object):
def flipAndInvertImage(self, A):
for index, _ in enumerate(A):
A[index] = A[index][::-1]
A[index] = [x^1 for x in A[index]]
return A