面試題46 把陣列翻譯成字串

2021-08-25 05:37:33 字數 608 閱讀 9086

題目描述:

給定乙個數字,我們按照如下規則把它翻譯成字串: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。實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。分析思路 用遞迴自頂向下分析,用動態規劃自低向上求解 定義...