输入第一行是两个数字,分别代表行数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))