讨论:https://www.nowcoder.com/profile/2235013/codeBookDetail?submissionId=12595600
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如,如果输入如下4 X 4矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
python实现:
迄今为止找到的最简单的做法,用pop()
def printMatrix(matrix): res = [] while matrix: res += matrix.pop(0) # 先将第一行添加进列表中 也可以res.extend(matrix.pop(0)) if matrix and matrix[0]: for row in matrix: # 遍历每一行 res.append(row.pop()) # 每一行最后一个 if matrix: # 如果还存在矩阵 最后一行从右往左 res += matrix.pop()[::-1] # 最后一行 翻转 if matrix and matrix[0]: # 如果还存在矩阵 往上添加 for row in matrix[::-1]: res.append(row.pop(0)) return res