题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.
row1
[1, 2, 3, 4 ],
col1 [5, 6, 7, 8 ], col2
[9, 10,11,12],
[13,14,15,16]
row2
def printMatrix(matrix):
# write code here
row1,row2 = 0,len(matrix)
col1,col2 = 0,len(matrix[0])
res = []
while row1 < row2 and col1 < col2:
for i in range(col1,col2):
res.append(matrix[row1][i])
row1 += 1
for i in range(row1,row2):
res.append(matrix[i][col2-1])
col2 -= 1
for i in reversed(range(col1,col2)):
res.append(matrix[row2-1][i])
row2 -= 1
for i in reversed(range(row1,row2)):
res.append(matrix[i][col1])
col1 += 1
print(res)
mat = [[1,2,5],[3,4,6]]
printMatrix(mat)
def snail(array):
a = []
while array:
a.extend(list(array.pop(0)))
array = zip(*array)
array.reverse()
return a