leetcode 把數字翻譯成字串(動態規劃)

2021-10-06 23:22:09 字數 651 閱讀 1660

題目描述:

給定乙個數字,我們按照如下規則把它翻譯為字串: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...