输入第一行是两个数字,分别代表行数M和列数N;接下来是M行,每行N个数字,表示这个矩阵的所有元素;当读到M=-1,N=-1时,输入终止。
请按逗号分割顺时针打印矩阵元素(注意最后一个元素末尾不要有逗号!例如输出“1,2,3”,而不是“1,2,
3,”),每个矩阵输出完成后记得换行
3 3 1 2 3 4 5 6 7 8 9 -1 -1
1,2,3,6,9,8,7,4,5
M,N为正整数且 M*N<=300000
旋转矩阵 def traverse(matrix): m=len(matrix) n=len(matrix[0]) new_matrix=[] for i in range(n): new_matrix1=[] for j in range(m): new_matrix1.append(matrix[j][i]) new_matrix.append(new_matrix1) new_matrix.reverse() return new_matrix 返回输出 def printmatrix(matrix): array=[] while matrix: for item in matrix[0]: array.append(item) del matrix[0] if len(matrix)==0: break matrix=traverse(matrix) return array while True: m,n=[int(x) for x in input().split()] if m==-1&nbs***bsp;n==-1: break matrix = [[int(x) for x in input().split()] for j in range(m)] result=printmatrix(matrix) print(','.join(map(str,result)))您的代码已保存
Python Solution
def clock_print(matrix): c = [] while True: try: c.extend(matrix.pop(0)) for i in range(len(matrix)-1): c.append(matrix[i].pop()) c.extend(matrix.pop(-1)[::-1]) for i in range(-len(matrix)+1,0): c.append(matrix[-i].pop(0)) except IndexError: break return c while True: M,N = [int(i) for i in input().split()] if M==-1 and N==-1: break matrix = [[str(i) for i in input().split()] for m in range(M)] result = clock_print(matrix) print(','.join(result))