题解 | #蛇形矩阵# 形象易懂 ,python
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
out=
1 3 6 10
2 5 9
4 8
7
可以由ori得到:
1
2 3
4 5 6
7 8 9 10
对于out的每一行,
- 定截取ori的方向: 第一行是主对角线,第二行是主对角线往左下方移了一步...
- 确定out的各行的长度
import sys def f(l): l=int(l) ls=[] for i in range(1,l+1): start=int(1+i*(i-1)/2) ls.append( tuple( t for t in range(start ,start+i) ) ) # print(ls) # 1. 定截取ori的方向: 第一行是主对角线,第二行是主对角线往左下方移了一步...横纵(不是纵横)坐标之差递增。 # ls[ y + x_y ][ y ] for x_y in range(l): # 2. 确定定行的长度 lenth =l-x_y for y in range(lenth): print(ls[ y+ x_y ][ y ],end=' ') print() for line in sys.stdin: l=line.strip() f(l)