1. 程式人生 > >【python3】leetcode 832. Flipping an Image(easy)

【python3】leetcode 832. Flipping an Image(easy)

832. Flipping an Image(easy)

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 by 1, and each 1 is replaced by 0. 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