題目描述:
給定乙個數字,我們按照如下規則把它翻譯成字串:0翻譯成『a』,1翻譯成』b』…25翻譯成』z』。乙個數字可能有多個翻譯,例如,12258有5種不同的翻譯,分別是』bccfi』,』bwfi』,』bczi』,』mcfi』,』mzi』。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。
動態規劃:
舉例來分析一下:「12258 的翻譯種數」=「1225 的翻譯種數」;「1225 的翻譯種數」=「122 的翻譯種數」+「12 的翻譯種數」;「122 的翻譯種數」=「12 的翻譯種數」+「1 的翻譯種數」;「12 的翻譯種數」=「1 的翻譯種數」;「1 的翻譯種數=1」。
從以上的分析,我們可以看出,這個問題可以拆分成多個子問題來求解,並且子問題有重疊部分,狀態轉移方程如下:
f(i)=
int gettranscnt(const
string& number)//string物件可能會非常長,應盡量避免拷貝,另外當函式無需修改引用形參時最好使用常量引用。
}cnt[i] = res;
}res = cnt[0];
delete cnt;
return res;
}
面試題46 把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258 輸出 5 解釋 12258有5種不同的翻譯,分別是 bccfi bwf...
面試題46 把數字翻譯成字串
給定乙個數字,我們按照如下規則把它翻譯為字串 0翻譯成 a 1翻譯成 b 25翻譯成 z 乙個數字可能有多種翻譯。例如,12258有5種不同的翻譯,分別是 bccfi bwfi bczi mcfi mzi 求乙個數字有多少種不同的翻譯方法?解題思路 上 c 香 法一 回溯法,很easyint cou...
Java 面試題46 把數字翻譯成字串
給定乙個數字,按照如下規則翻譯成字串 0翻譯成 a 1翻譯成 b 25翻譯成 z 乙個數字有多種翻譯可能,例如12258一共有5種,分別是bccfi,bwfi,bczi,mcfi,mzi。實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。分析思路 用遞迴自頂向下分析,用動態規劃自低向上求解 定義...