Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lật ngược và đảo bit ma trận trong Python

Cho một ma trận nhị phân mat. Với mỗi hàng trong ma trận, ta đảo ngược thứ tự các phần tử rồi lật từng bit (0 thành 1, 1 thành 0).

Ví dụ: đầu vào

110
010
001

Đầu ra:

100
101
011

Các bước giải quyết

  • Khởi tạo track = 0
  • Với mỗi hàng row trong mat:
    • Đảo ngược hàng: row.reverse()
    • Khởi tạo tracker = 0
    • Với mỗi giá trị val trong hàng:
      • Nếu val == 1 thì gán mat[track][tracker] = 0
      • Ngược lại gán mat[track][tracker] = 1
      • Tăng tracker lên 1
    • Tăng track lên 1
  • Trả về mat

Ví dụ mã Python

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