832.反転画像(Python)

1247 ワード

タイトル
難易度:★☆☆☆タイプ:ジオメトリ、2 D配列
バイナリ行列Aを与えて、まず画像を水平に反転してから、画像を反転して結果を返したい.
水平反転ピクチャとは、ピクチャの各行を反転する逆シーケンスである.例えば、水平反転[1,1,0]の結果は[0,1,1]である.
反転画像は、画像中の0がすべて1で置き換えられ、1がすべて0で置き換えられることを意味します.例えば、反転[0,1,1]の結果は[1,0,0]である.
説明1<=A.length=A[0].length <= 20 0 <= A[i][j] <= 1

例1入力:[[1,1,0],[1,0,1],[0,0]]出力:[[1,0,0],[0,1,1],[1,1,1]]解釈:まず各行を反転する:[[0,1,1],[1,0,1],[0,1],[0,0],[1,0,0];次にピクチャを反転する:[[1,0,0],[0,1,0],[1,1]]
例2入力:[[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,0],出力:[[1,1,1,1,0],[0,0,0,1],[1,0,0,0],[1,0,1,0],解釈:まず各行を反転する:[[0,0,1,1,1],[1,0,0,0,0,0,1],[1,1,1,1,0,0,0,0,0,次に、ピクチャを反転する:[[1,1,0,0],[0,1,1,0],[0,0,1],[1,0,1,0],[1,0,0]]
に答える
タイトルは入力した白黒画像に対して2つのステップを行うことを要求します:1.画像を左右に反転させることで、各行の画素を逆順に実現することができる.2.色の反転は、1ピクセルポイントあたりの値を減算して実現できます.
class Solution:
    def flipAndInvertImage(self, A):
        new_A = []
        for row in A:
            new_row = []
            for pixel in row:
                new_row.append(1-pixel)
            new_A.append(new_row[::-1])
        return new_A

コンパクトな書き方:
class Solution:
    def flipAndInvertImage(self, A):
        return [[1-pixel for pixel in row][::-1] for row in A]

質問やアドバイスがあれば、コメントエリアへようこそ~