Computer >> Máy Tính >  >> Lập trình >> Python

Ma trận lật và đảo ngược trong Python

Giả sử chúng ta có một mat ma trận nhị phân. Chúng ta phải chọn từng hàng trong ma trận, sau đó đảo ngược mũi tên. Sau đó, lật từng bit (0 thành 1 và 1 thành 0).

Vì vậy, nếu đầu vào giống như

1 1 0
0 1 0
0 0 1

thì đầu ra sẽ là

1 0 0
1 0 1
0 1 1

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • theo dõi:=0
  • đối với mỗi hàng trong thảm, thực hiện
    • đảo ngược hàng
    • trình theo dõi:=0
    • đối với mỗi val trong hàng, hãy thực hiện
      • nếu val là 1, thì
        • mat [track, tracker]:=0
      • nếu không,
        • mat [track, tracker]:=1
      • trình theo dõi:=tracker + 1
    • track:=track + 1
  • chiếu trở lại

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

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

Đầu ra

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