剑指offer-顺时针打印矩阵(python)

遇到这在那个题目就用魔方旋转的方法
可以模拟魔方逆时针旋转的方法,一直做取出第一行的操作
例如
1 2 3
4 5 6
7 8 9
输出并删除第一行后,再进行一次逆时针旋转,就变成:
6 9
5 8
4 7
继续重复上述操作即可。

# -*- coding:utf-8 -*-
class Solution:
    def printMatrix(self, matrix):
        # write code here
        result=[]
        while(matrix):
            result+=matrix.pop(0)
            if not matrix or not matrix[0]:
                break         
            matrix=self.turn(matrix)
        return result
    #反转矩阵
    def turn(self,matrix):
        nrow=len(matrix)
        ncol=len(matrix[0])
        outlist=[]
        for i in range(ncol):
            inlist=[]
            for j in range(nrow):
                inlist.append(matrix[j][i])
            outlist.append(inlist)
        outlist.reverse()
        return outlist

你可能感兴趣的:(剑指offer)