I have a task in LeetCode called 832. Flipping an Image
Given an n x n binary matrix image, 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: image = [[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]]
and the solution provided by someone is a one-liner in Python:
class Solution:
def flipAndInvertImage(self, image: List[List[int]]) -> List[List[int]]:
return [[1 ^ i for i in reversed(row)] for row in image]
And debugging the one-liner is not effective at all so my kind request is to explain blow-by-blow the code. Mostly I have problems with those parts before for loop as I couldn't find an explanation on the internet that you can put a code before the loop.