Giả sử chúng ta có ma trận M (n x n), chúng ta phải tìm chuyển vị của nó. Như chúng ta đã biết sự chuyển vị của một ma trận sẽ chuyển các chỉ số hàng và cột. Chính thức hơn, với mọi r và c, matrix [r] [c] =matrix [c] [r].
Vì vậy, nếu đầu vào giống như
7 | 2 | 6 |
3 | 7 | 2 |
5 | 3 | 7 |
thì đầu ra sẽ là
7 | 3 | 5 |
2 | 7 | 3 |
6 | 2 | 7 |
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- M:=một danh sách mới
- trình theo dõi:=0
- while trình theo dõi
- temp:=một danh sách mới
- đối với mỗi hàng trong ma trận, thực hiện
- temp:=tham gia tạm thời và một danh sách có hàng phần tử [trình theo dõi]
- M:=M nối một danh sách khác với phần tử tạm thời
- trình theo dõi:=tracker + 1
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, matrix): M = [] tracker = 0 while tracker < len(matrix): temp = [] for row in matrix: temp += [row[tracker]] M += [temp] tracker += 1 return M ob = Solution() matrix = [ [7, 2, 6], [3, 7, 2], [5, 3, 7] ] print(ob.solve(matrix))
Đầu vào
[[7, 2, 6], [3, 7, 2], [5, 3, 7]]
Đầu ra
[[7, 3, 5], [2, 7, 3],[6, 2, 7]]