給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。
示例 1:
輸入: 12258輸出: 5
解釋: 12258有5種不同的翻譯,分別是"bccfi", 「bwfi」, 「bczi」, 「mcfi"和"mzi」
0 <= num < 231很明顯是動態規劃問題
設數字num的第i位數字為x
ix_i
xi,數字num的位數為n,例如:num = 12258時,n=5,x
1x_1
x1為1
方法一:字串遍歷
複雜度分析:
class
solution
return dp[len];}
};
劍指 Offer 46 把數字成字串
以12256為例從左邊開始翻譯可以分為兩個子問題 翻譯1,2256,翻譯12,256 2256可以分解為翻譯2,256 22,56。256可以分解為翻譯2,56。由上分析可以使用遞迴求解但是存在重複部分 56 所以考慮由下至上解決問題,這樣可以消除子問題假設f i f i f i 是第i個數開始存在...
劍指offer全套解答 劍指offer 46 55
46.孩子們的遊戲 圓圈中最後剩下的數 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出...
《劍指offer》面試題46 把數字翻譯成字串
思路 下面我們從自上而下和自下而上兩種角度分析這道題目,以12258為例 自上而下,從最大的問題開始,遞迴 12258 b 2258 m 258 bc 258 bw 58 mc 58 mz 8 bcc 58 bcz 8 bwf 8 mcf 8 mzi bccf 8 bczi bwfi mcfi bc...