假设我们有一个(n乘n)矩阵M,我们必须找到它的转置。众所周知,矩阵的转置会切换行索引和列索引。更正式地说,对于每个r和c,matrix [r] [c] = matrix [c] [r]。
所以,如果输入像
7 | 2 | 6 |
3 | 7 | 2 |
5 | 3 | 7 |
那么输出将是
7 | 3 | 5 |
2 | 7 | 3 |
6 | 2 | 7 |
为了解决这个问题,我们将遵循以下步骤-
M:=一个新列表
追踪器:= 0
而跟踪器<矩阵的行数,执行
temp:=加入temp和带有元素行的列表[tracker]
temp:=一个新列表
对于矩阵中的每一行,执行
M:= M用temp元素加入另一个列表
追踪器:=追踪器+ 1
返回M
让我们看下面的实现以更好地理解-
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))
[[7, 2, 6], [3, 7, 2], [5, 3, 7]]
输出结果
[[7, 3, 5], [2, 7, 3],[6, 2, 7]]