劍指 Offer 46 把數字翻譯成字串

2021-10-18 05:48:12 字數 703 閱讀 4914

劍指 offer 46. 把數字翻譯成字串

給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。

輸入: 12258

輸出: 5

解釋: 12258有5種不同的翻譯,分別是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"

這題其實就是斐波拉契數列的變種,也是一種比較簡單的動態規劃。

每種狀態只考慮他前面兩種狀態的情況,如何他前面兩個數是在10-25範圍內的,也就是說他可以被翻譯。那麼就有f(i

)=f(

i−1)

+f(i

−2

)f(i) = f(i-1) + f(i-2)

f(i)=f

(i−1

)+f(

i−2)

如果不能被翻譯,則f(i

)=f(

i−1)

f(i)=f(i-1)

f(i)=f

(i−1

) 這就是他的狀態轉移方程,其他的都可以套用斐波拉契數列的那一套。

class

solution

return a;

}}

劍指offer 46 把數字翻譯成字串

給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...

劍指 Offer 46 把數字翻譯成字串

給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...

劍指 Offer 46 把數字翻譯成字串

方法 演算法思想 動態規劃,到i的時候,區分最後兩位 是不是 10,25 最後一位 其他情況 時間複雜度 o n 空間複雜度 o n 邊界條件 兩位的時候,有兩種情況,所以dp 1 補充知識 class solution public int translatenum int num string ...