題目:給定乙個數字,我們按照如下規則把它翻譯為字串:0翻譯成「a」,1翻譯成「b」,...,25翻譯成「z」。乙個數字可能有多個翻譯。請實現乙個函式,計算乙個數字有多少種不同的翻譯方法。
def digit_to_string(num):num = str(num)
length = len(num)
res = [0]*length
i=length-1
while i>=0:
if i==length-1:
res[i]=1
elif i==length-2:
if int(num[i:])<26:
res[i]=2
else:
res[i]=1
else:
if int(num[i:i+2]) < 26:
res[i]=res[i+1] + res[i+2]
else:
res[i]=res[i+1]
i-=1
return res[0]
注:使用動態規劃的思想。f[i]=f[i+1]+g[i,i+1]f[i+2],g[i,i+1]為第i,i+1位組成的數是否小於26,若小於說明可以拆分為兩個,g[i,i+1]為1,若大於等於26,則不能拆分,g[i,i+1]為0。
46 把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...
劍指 46 把數字翻譯成字串
題目描述 演算法分析 f r 表示以r為開始 r最小取0 到最右端所組成的數字能夠翻譯成字串的種數。對於長度為n的數字,f n 0,f n 1 1,求f 0 遞推公式為 f r 2 f r 1 g r 2,r 1 f r 其中,如果r 2,r 1能夠翻譯成字元,則g r 2,r 1 1,否則為0。因...
把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0翻譯成 a 1翻譯成 b 11翻譯成 l 25翻譯成 z 乙個數字可能有多個翻譯。例如12258有5種不同的翻譯,它們分別 bccfi bwfi bczi mcfi 和 mzi 請程式設計實現乙個函式用來計算乙個數字有多少種不同的翻譯方法 1.dfs ...