题解 | #蛇形矩阵# 形象易懂 ,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的每一行,

  1. 定截取ori的方向: 第一行是主对角线,第二行是主对角线往左下方移了一步...
  2. 确定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)
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务