题目
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.
方法一
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
# write code here
res=[]
while matrix:
res+=matrix.pop(0)#返回矩阵的第一列,res=[1,2,3,4]
if matrix and matrix[0]:#matrix=[[5,6,7,8],[9,10,11,12],[13,14,15,16]]
for row in matrix:#对matrix中的每行进行操作
res.append(row.pop())#返回matrix每行中的最后一个数,res=[1,2,3,4,8,12,16]
if matrix:#matrix=[[5,6,7],[9,10,11],[13,14,15]]
res+=matrix.pop()[::-1]#返回矩阵的最后一行,并且是逆序返回,res=[1,2,3,4,8,12,16,15,14,13]
if matrix and matrix[0]:#matrix=[[5,6,7],[9,10,11]]
for row in matrix[::-1]:#对matrix的每行进行处理,并且是从最一行开始处理
res.append(row.pop(0))#res=[1,2,3,4,8,12,16,15,14,13,9,5]
return res