/**
* 把數字翻譯成字符串,計算有多少種翻譯方法
*
* @param n
* @return
*/
public int getTranslationCount(int n) {
if (n < 10) return 1;
char[] arr = String.valueOf(n).toCharArray();
int[] dp = new int[arr.length];
dp[0] = 1;
dp[1] = ((arr[0] - '0') * 10 + (arr[1] - '0')) <= 25 ? 2 : 1;
for (int i = 2; i < arr.length; i++) {
dp[i] += dp[i - 1];
int s = (arr[i - 1] - '0') * 10 + (arr[i] - '0');
if (s >= 10 && s <= 25) {
dp[i] += dp[i - 2];
}
}
return dp[dp.length - 1];
}
劍指Offer學習-面試題46:把數字翻譯成字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.