# -*- coding:utf-8 -*-
class Solution:
# matrix類型爲二維列表,需要返回列表
def printMatrix(self, matrix):
# write code here
if not matrix or len(matrix) <= 0 or len(matrix[0]) <= 0:
return
start = 0
rows = len(matrix)
columns = len(matrix[0])
res = []
while (columns > start * 2 and rows > start * 2):
self.printMatrixInCircle(matrix, columns, rows, start, res)
start += 1
return res
def printMatrixInCircle(self, matrix, columns, rows, start, res):
endX = columns - 1 - start
endY = rows - 1 - start
# 從左到右打印一行
for i in range(start, endX + 1):
res.append(matrix[start][i])
# 從上到下打印一列
if start < endY:
for i in range(start + 1, endY + 1):
res.append(matrix[i][endX])
# 從右到左打印一行
if start < endX and start < endY:
for i in range(endX - 1, start - 1, -1):
res.append(matrix[endY][i])
# 從下到上打印一列
if start < endX and start < endY - 1:
for i in range(endY - 1, start, -1):
res.append(matrix[i][start])