給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。
動態規劃可以模擬這道題,節省空間還借用了這道題的思想
class solution:
def translatenum(self, num: int) -> int:
quotient, remainder = divmod(num,10)
# a,b,分別存放上一位結果,上上一位結果,當前結果
a,b,c = 1,1,1
while(quotient != 0):
last = remainder
quotient, remainder = divmod(quotient, 10)
if last + remainder * 10 <= 25 and last + remainder * 10 >= 10:
c = a + b
else:
c = a
a, b = c, a
return c
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...