python实现转圈打印矩阵
本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下
#!conding:utf-8 __author__="hotpot" __date__="2017/10/289:40" defreturn_edge(matrix,start_col,end_col,start_row,end_row): ifstart_row==end_row: returnmatrix[start_row][start_col:end_col+1] elifend_col==start_col: res=[] foriinrange(start_row,end_row+1): res.append(matrix[i][end_col]) returnres else: res2=[] res3=[] res4=[] res1=matrix[start_row][start_col:end_col+1] foriinrange(start_row+1,end_row+1): res2.append(matrix[i][end_col]) foriinrange(end_col-1,start_col-1,-1): res3.append(matrix[end_row][i]) foriinrange(end_row-1,start_row,-1): res4.append(matrix[i][start_row]) res1.extend(res2) res1.extend(res3) res1.extend(res4) returnres1 defspiralOrder(matrix): ifmatrix: row=len(matrix)-1 col=len(matrix[0])-1 start_row=0 start_col=0 end_row=row end_col=col res=[] whilestart_col<=end_colandstart_row<=end_row: res.extend(return_edge(matrix,start_col,end_col,start_row,end_row)) start_col+=1 end_col-=1 start_row+=1 end_row-=1 returnres else: returnmatrix if__name__=='__main__': matrix=[[0foriinrange(3)]forjinrange(3)] num=1 forminrange(len(matrix)): forninrange(len(matrix[0])): matrix[m][n]=num num+=1 print(spiralOrder(matrix))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。