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

Xoay ma trận 90 độ theo chiều kim đồng hồ trong Python

Cho ma trận vuông n x n. Xoay ma trận 90 độ theo chiều kim đồng hồ.

Ví dụ: ma trận 3x3: [[1,5,7],[9,6,3],[2,1,3]] → xoay thành [[2,9,1],[1,6,5],[3,3,7]].

Giải thuật

  • Tạo ma trận tạm temp_matrix.
  • Duyệt cột từ 0 đến n-1, với mỗi cột duyệt hàng từ n-1 xuống 0, lấy phần tử matrix[row][col] đưa vào hàng mới của temp_matrix.
  • Sao chép temp_matrix ngược lại matrix.

Mã ví dụ

class Solution(object):
    def rotate(self, matrix):
        temp_matrix = []
        column = len(matrix) - 1
        for column in range(len(matrix)):
            temp = []
            for row in range(len(matrix)-1, -1, -1):
                temp.append(matrix[row][column])
            temp_matrix.append(temp)
        for i in range(len(matrix)):
            for j in range(len(matrix)):
                matrix[i][j] = temp_matrix[i][j]
        return matrix

ob1 = Solution()
print(ob1.rotate([[1,5,7],[9,6,3],[2,1,3]]))

Đầu vào

[[1,5,7],[9,6,3],[2,1,3]]

Đầu ra

[[2, 9, 1], [1, 6, 5], [3, 3, 7]]