Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Flipping an Image ใน Python: กลับภาพและกลับค่าบิต

ได้รับเมทริกซ์ไบนารี A แทนภาพ ต้องทำ 2 ขั้นตอน: (1) กลับภาพแนวนอน (reverse แต่ละแถว) (2) กลับค่าบิต (0→1, 1→0) คืนภาพที่ได้

ตัวอย่าง

อินพุต:

110
101
000
เอาต์พุต:
100
010
111

ขั้นตอนการแก้ปัญหา

  1. สร้างรายการผลลัพธ์ว่าง
  2. วนแต่ละแถว:
    • กลับลำดับแถว (row[::-1])
    • วนแต่ละค่า: 1→0, 0→1
    • เพิ่มแถวที่ประมวลผลแล้วเข้าผลลัพธ์
  3. คืนผลลัพธ์

การติดตั้งใน Python

class Solution:
    def flipAndInvertImage(self, A):
        result = []
        for row in A:
            rev = row[::-1]
            for j in range(len(rev)):
                rev[j] = 1 - rev[j]  # invert: 0↔1
            result.append(rev)
        return result

ob = Solution()
print(ob.flipAndInvertImage([[1,1,0],[1,0,1],[0,0,0]]))
# [[1, 0, 0], [0, 1, 0], [1, 1, 1]]

อินพุต / เอาต์พุต

Input: [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1, 0, 0], [0, 1, 0], [1, 1, 1]]