顺时针打印矩阵

顺时针打印矩阵

http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a

提供一个不错的思路,python编程
我的思路不是绕着矩阵来打印,而是让矩阵旋转,我每次打印他的第一行就行。
打印一次,去除第一行,然后旋转,最后就可以完成了。

# -*- coding:utf-8 -*-
class Solution:
    # matrix类型为二维列表,需要返回列表
    def printMatrix(self, matrix):
        # write code here
        # 旋转矩阵
        def rotate(mat):
            lenx = len(mat[0])
            leny = len(mat)
            newmat = [[0] * leny for i in range(lenx)]
            for i in range(len(newmat)):
                newmat[i] = [mat[y][lenx - i - 1] for y in range(leny)]    
            return newmat

        # 获取第一行,并且旋转矩阵
        def getline(mat):
            res = mat[0]
            newmat = []
            if len(mat) > 1:
                newmat = rotate(mat[1:])
            return res,newmat

        result = []
        newm = []
        result, newm = getline(matrix)
        while newm != []:
            res,newm = getline(newm)
            result.extend(res)
        return result
全部评论

相关推荐

陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务