回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
看似简单对吧,但是有坑,而且有一点点绕.
- 首先结尾不能有空格
- 单行但列的特殊情况要加一个if
代码如下
# -*- coding: utf-8 -*-
row,col=list(map(int,input().split()))
data_list=[]
for i in range(row):
temp=input().split()
data_list.append(temp)
#print(data_list)
begin_r=row
begin_c=col
#print(begin_c,begin_r)
rounds=0
ans=[]
def print_loop(begin_r,begin_c,rounds):
#print(type(rounds),type(begin_r))
"""打印一圈."""
for i in range(rounds,begin_r):
#print(data_list[i][0+rounds],end=" ")
ans.append(data_list[i][0+rounds])
#print("loop1")
for i in range(1+rounds,begin_c):
#print(data_list[begin_r-1][i],end=" ")
ans.append(data_list[begin_r-1][i])
#print("loop2")
for i in r