Flipping an Image

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取反的目的
相關文章
相關標籤/搜索