剑指offer --- 循环打印

不知道为啥在牛客上一直编译不通过,我在本地运行很正常呀~

import re
import numpy as np
import math

def printIncircle( matrix, columns, rows, start):
    endX = columns -1 - start
    endY = rows-1 - start
    res = []
    # 从左往右打印
    for i in range(start, endX+1):
        number = matrix[start][i]
        #print ("one")
        res.append(number)
        print(number)
    # 从上往下打印
    if start < endY:
        for i in range(start + 1, endY+1):
            number = matrix[i][endX]
            print ("two")
            res.append(number)
            print (number)

    # 从右往左打印
    if start < endX and start < endY:
        for i in range(endX-1,start-1,-1):
            #print ("i:%s"%i)
            number = matrix[endY][i]
            res.append(number)
            #print ("three")
            print (number)
    #从下往上打印
    if endY >= start+1 and start < endX:
        for i in range(endY-1,start,-1):
            number = matrix[i][start]
            res.append(number)
            print (number)
    return res

def printMatrix(matrix):
    if not matrix :
        return None
    #matrix =np.array(matrix)
    m =len(matrix)
    #print (m)
    n = len(matrix[0])

    #m,n =matrix.shape
    if m <= 0 or n <= 0:
        return None
    start = 0
    s =[]
    while m > start *2 and n > start *2:
        res = printIncircle(matrix,m, n, start)
        s.append(res)
        start += 1
    print (s)
    for i in s:
        print (i)
if __name__=='__main__':
    matrix =[[1]]

            # [1,2,3],
            #  [4,5,6],
            #  [7,8,9]]
        # [1,2,3,4],
        #      [5,6,7,8],
        #      [9,10,11,12],
        #      [13,14,15,16]
        #     ]
    printMatrix(matrix)

猜你喜欢

转载自blog.csdn.net/weixin_40411446/article/details/81569785