สมมติว่าเรามีเมทริกซ์ไบนารี A นี่คือการแสดงภาพ เราต้องการพลิกภาพในแนวนอน หลังจากนั้นกลับด้าน และสุดท้ายส่งคืนภาพที่ได้ หากต้องการพลิกภาพในแนวนอน แต่ละแถวของภาพจะกลับด้าน และในการกลับภาพแต่ละ 0 จะถูกแทนที่ด้วย 1 และแต่ละ 1 จะถูกแทนที่ด้วย 0
ดังนั้นหากอินพุตเป็นแบบ
1 | 1 | 0 |
1 | 0 | 1 |
0 | 0 | 0 |
แล้วผลลัพธ์ที่ได้จะเป็น
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ผลลัพธ์:=รายการใหม่
- สำหรับแต่ละแถว i ใน A ทำ
- ย้อนกลับ:=กลับแถว i
- สำหรับ j ในช่วง 0 ถึงขนาดของ Reverse ให้ทำ
- ถ้า Reverse[j] เหมือนกับ 1 แล้ว
- ย้อนกลับ[j]:=0
- มิฉะนั้น
- ย้อนกลับ[j]:=1
- ถ้า Reverse[j] เหมือนกับ 1 แล้ว
- แทรกย้อนกลับที่ส่วนท้ายของผลลัพธ์
- ผลตอบแทน
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def flipAndInvertImage(self, A): result=[] for i in A: Reverse=i[::-1] for j in range(len(Reverse)): if Reverse[j]==1: Reverse[j]=0 else: Reverse[j]=1 result.append(Reverse) return result ob = Solution() print(ob.flipAndInvertImage([[1,1,0],[1,0,1],[0,0,0]]))
อินพุต
[[1,1,0],[1,0,1],[0,0,0]]
ผลลัพธ์
[[1, 0, 0], [0, 1, 0], [1, 1, 1]]