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

2021-10-25 05:31:34 字數 601 閱讀 5646

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