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

พลิกและกลับเมทริกซ์ใน Python


สมมติว่าเรามีเมทริกซ์เมทริกซ์ไบนารี เราต้องเลือกแต่ละแถวในเมทริกซ์ แล้วกลับแถว หลังจากนั้น ให้พลิกแต่ละบิต (0 ถึง 1 และ 1 ถึง 0)

ดังนั้นหากอินพุตเป็นแบบ

1 1 0
0 1 0
0 0 1

แล้วผลลัพธ์ที่ได้จะเป็น

1 0 0
1 0 1
0 1 1

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ติดตาม:=0
  • สำหรับแต่ละแถวในเสื่อ ทำ
    • กลับแถว
    • ตัวติดตาม :=0
    • สำหรับแต่ละ val ในแถว ทำ
      • ถ้าวาลเป็น 1 แล้ว
        • mat[ตัวติดตาม] :=0
      • มิฉะนั้น
        • mat[ตัวติดตาม] :=1
      • ตัวติดตาม :=ตัวติดตาม + 1
    • แทร็ก :=แทร็ก + 1
  • เสื่อคืน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, mat):
      track=0
      for row in mat:
         row.reverse()
         tracker = 0
         for val in row:
            if val == 1:
               mat[track][tracker] = 0
            else:
               mat[track][tracker] = 1
            tracker += 1
         track += 1
      return mat
ob = Solution()
mat = [[1,1,0],[0,1,0],[0,0,1]]
print(ob.solve(mat))

อินพุต

[[1,1,0],[0,1,0],[0,0,1]]

ผลลัพธ์

[[1, 0, 0], [1, 0, 1], [0, 1, 1]]