現在輸入乙個數字序列,計算有多少種方式可以解碼成字元a-z組成的序列。 )
字元a-z可以編碼為0-25。「a」->「0」, 「b」->「1」, …, 「z」->「25」
現在輸入乙個數字序列,計算有多少種方式可以解碼成字元a-z組成的序列。
例如:輸入:19
輸出:2
輸入:258
輸出:2
輸入:0219
輸出:3
def
how_many_ways
(s):
iflen
(s)==0:
return
0 l =[0
]*(len
(s)+1)
l[0]
=1for i in
range
(len
(s)+1)
:if i ==0:
continue
if s[i-1]
=='0'
: l[i]=1
else
: l[i]
= l[i-1]
if(i >
1and
9<
int(s[i-
2:i]
)<26)
: l[i]
+= l[i-2]
return l[-1
]def
main()
: s =
input()
.strip(
)print
(how_many_ways(s)
)if __name__ ==
"__main__"
: main(
)
Number Sequence 數字序列
一 杭電原題摘錄 二.題目分析 很容易就能想到遞迴,但是超出記憶體 int fac int a,int b,int n 超出記憶體 因為f n 的值要對7取餘,所以不難想到f n 的值可能存在週期.那我們就去找週期,看是否存在?週期不就是一直重複t個數,那麼我們就說這組數存在週期,且為t.在這個問題...
解碼數字序列
問題 大意 指定26個字元的編碼方式,即a對應1,b對應2,以此類推,z對應26,現出一串數字序列,問有多少種方式能對其進行解碼 實際上是乙個簡單的動態規劃,設s是我們要解碼的數字序列,令dp i 表示s i,s.length 有多少種解碼方式,則狀態方程為 if s i 0,dp i 0 else...
程式設計題 數字序列
信服君最近在研究一種有趣的數字串,例如11135917171513 你可能發現了,除了開始的三個數字為1以外,後面的數字均由三位數字相加得到,現在信服君想知道在給定任意起始三個數字後,第n位是多少。輸入描述 首行輸入乙個整數t 1 t 1000 表示有t組資料,每組資料給出四個數字a b c n其中...