Given a binary matrix A
, we want to flip the image horizontally, then invert it, and return the resulting image.spa
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]
.code
To invert an image means that each 0
is replaced by 1
, and each 1
is replaced by 0
. For example, inverting [0, 1, 1]
results in [1, 0, 0]
.blog
Example 1:ip
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:it
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]]
Notes:io
1 <= A.length = A[0].length <= 20
0 <= A[i][j] <= 1
Python3class
1 class Solution: 2 def flipAndInvertImage(self, A): 3 """ 4 :type A: List[List[int]] 5 :rtype: List[List[int]] 6 """ 7 return [[1-i for i in row[::-1]] for row in A] 8 9 # 0. 過程分析 10 # 1. 先對A進行反向切片A[::-1] 11 # 2. 1-i能夠達到取反的目的 12 # 3. 取反也可使用位異或運算符1^i 13 # 3.1 1二進制爲 0001 14 # 3.2 0二進制爲 0000 15 # 3.3 1^0爲 0001,十進制爲1 16 # 3.4 1^1爲 0000,十進制爲0 17 # 3.5 則達到了0變1,1變0取反的目的