目錄
題目描述
解題思路 **
總結給定乙個數字,我們按照如下規則把它翻譯為字串:0 翻譯成 「a」 ,1 翻譯成 「b」,……,11 翻譯成 「l」,……,25 翻譯成 「z」。乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。
示例 1:輸入: 12258
輸出: 5
解釋: 12258有5種不同的翻譯,分別是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
0 <= num < 231
自己解題:
dp。1、遍歷數字,對於第i位數字,有不同的翻譯方式:
因此,令f(i)表示以第i位結尾的字首串翻譯的方案數。如果第i位單獨翻譯,f(i) = f(i-1);如果滿足合併翻譯 ,則f(i) = f(i-2);否則f(i) = 0;寫出邏輯表示式為:
f(i) = f(i -1) + f(i -2) [i-1 >=0, 10<=x<=25], 其中f(0) = 1,f(-1) = 0。方程中 [c] 的意思是 c 為真的時候 [c] = 1,否則 [c]=0。
滾動陣列優化動態規劃?
class solution
// 更新條件
string pre = src.substring(i-1,i+1);
if(pre.compareto("25") <= 0 && pre.compareto("10") >= 0)
}return r;
}}
1、動態規劃,變數 + 更新規則;
2、滾動陣列優化動態規劃?
參考:0-1揹包、完全揹包問題:
演算法 把數字翻譯成字串
題目要求 給定乙個數字,按照如下規則翻譯成字串 0翻譯成 a 1翻譯成 b 25翻譯成 z 乙個數字有多種翻譯可能,例如12258一共有5種,分別是bccfi,bwfi,bczi,mcfi,mzi。實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。參考至該作者 自上而下,從最大的問題開始,遞迴 ...
把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0翻譯成 a 1翻譯成 b 11翻譯成 l 25翻譯成 z 乙個數字可能有多個翻譯。例如12258有5種不同的翻譯,它們分別 bccfi bwfi bczi mcfi 和 mzi 請程式設計實現乙個函式用來計算乙個數字有多少種不同的翻譯方法 1.dfs ...
把數字翻譯成字串
給定乙個數字,我們按照如下的規則將它翻譯成字串 0翻譯成 a 1翻譯成 b 11翻譯成 l 25翻譯成 z 乙個數字可能有多種翻譯,例如,12258有5種翻譯,分別是 bccfi bwfi bczi mcfi 和 mzi 請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。這道題,乍一看...