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

Xoay ma trận bằng Python

Giả sử chúng ta có một n x n ma trận 2D. Chúng ta phải xoay ma trận này 90 độ theo chiều kim đồng hồ. Vì vậy, nếu ma trận giống như-

1 5 7
9 6 3
2 1 3

Sau đó, đầu ra sẽ là

2 9 1
1 6 5
3 3 7

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

  • Xem xét temp_mat =[], col:=length của ma trận - 1
  • cho col trong phạm vi từ 0 đến độ dài của ma trận
    • tạm thời:=[]
    • cho hàng trong phạm vi độ dài của ma trận - 1 xuống -1
      • thêm ma trận [hàng, cột] trong tạm thời
    • thêm nhiệt độ vào temp_mat
  • cho tôi trong phạm vi từ 0 đến chiều dài của ma trận
    • cho j trong phạm vi từ 0 đến độ dài của ma trận
      • ma trận [i, j]:=temp_mat [i, j]

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

Mã mẫu (Python)

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