題目描述:
給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。
示例 1:
輸入: 12258
輸出: 5
解釋: 12258有5種不同的翻譯,分別是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
實現**:
def translatenum(self, num: int) -> int:
s = str(num)
a = b = 1
for i in range(2,len(s)+1):
tmp = s[i-2:i]
c = a+b if "10"<=tmp<="25" else a
b = a
a = c
return a
解題思路:
注意邊界問題
從前兩位開始,如果這兩位在26個英文本母之間,則有兩種
那麼後續的話就一直增加,後移一位 = 前一位已有的翻譯方案+新的
leetcode 面試題46把數字翻譯成字串
解題思路 動態規劃,1 得到num的每一位數字,從低位到高位用nums儲存 2 從低位到高位依次求解,狀態轉移方程如下 d p i dp i 1 dp i 2 10 leq nums i 10 nums i 1 26 dp i 1 others end right.dp i dp i 1 dp i ...
leetcode面試題46把數字翻譯成字串
題目描述 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccf...
leetcode 面試題46 把數字翻譯成字串
題目鏈結 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。class solution vector int nums while num int...