在學習廖雪峰python教程中,「高階特性==>生成器」遇到楊輝三角的練習題,比較有意思。記錄下掌握的兩種解法。
思路:上一行前後補0,每兩個元素相加得到該行數列。
def
********s()
: l =[1
]while
true
:yield l
l =[sum
(i)for i in
zip([0
]+l, l+[0
])]
n =0
results =
for t in ********s():
n = n +
1if n ==10:
break
for t in results:
print
(t)
def
********s()
: l =[1
]while
true
:yield l[:]
0)l =
[l[i-1]
+ l[i]
for i in
range
(len
(l))
]
n =0
results =
for t in ********s():
n = n +
1if n ==10:
break
for t in results:
print
(t)
python列印楊輝三角的兩種思路
方法一 定義乙個列表,存放第一行初始元素1,接著複製乙個列表,將其轉換為字串,方便將其格式化 也就是加 t製表符 但是這種方法空間開銷比較大。def prin num mylist 1 初始為1,預設第一行 for i in range num 列印num行 listc mylist.copy fo...
python楊輝三角 楊輝三角I II
給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...
Python實現 楊輝三角 的兩種方法
給定乙個非負整數k k 33 返回楊輝三角的第k行 注意 返回行從0開始 在楊輝三角中,每個數是它左上方和右上方的數的和 example input 3 output 1,3,3,1 高階 你可以優化你的演算法到o k 的空間複雜度麼?def getrow self,rowindex type ro...