您好,登錄后才能下訂單哦!
本文實例為大家分享了python實現轉圈打印矩陣的具體代碼,供大家參考,具體內容如下
#! conding:utf-8 __author__ = "hotpot" __date__ = "2017/10/28 9:40" def return_edge(matrix, start_col, end_col, start_row, end_row): if start_row == end_row: return matrix[start_row][start_col:end_col+1] elif end_col ==start_col: res = [] for i in range(start_row,end_row+1): res.append(matrix[i][end_col]) return res else: res2 =[] res3 =[] res4=[] res1 = matrix[start_row][start_col:end_col+1] for i in range(start_row+1,end_row+1): res2.append(matrix[i][end_col]) for i in range(end_col-1,start_col-1,-1): res3.append(matrix[end_row][i]) for i in range(end_row-1,start_row,-1): res4.append(matrix[i][start_row]) res1.extend(res2) res1.extend(res3) res1.extend(res4) return res1 def spiralOrder( matrix): if matrix: row = len(matrix)-1 col = len(matrix[0])-1 start_row = 0 start_col = 0 end_row = row end_col = col res =[] while start_col<=end_col and start_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 return res else: return matrix if __name__ == '__main__': matrix = [[0 for i in range(3) ]for j in range(3)] num=1 for m in range(len(matrix)): for n in range(len(matrix[0])): matrix[m][n]=num num+=1 print(spiralOrder( matrix))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。