給定一個數字,我們按照如下規則把它翻譯為字符串:0 翻譯成 “a” ,1 翻譯成 “b”,……,11 翻譯成 “l”,……,25 翻譯成 “z”。一個數字可能有多個翻譯。請編程實現一個函數,用來計算一個數字有多少種不同的翻譯方法。
示例 1:
輸入: 12258
輸出: 5
解釋: 12258有5種不同的翻譯,分別是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”
解題思路
因為只存在判斷26以內的兩位數,所以每一步我們可以選擇一位數字或者26以內的兩位數
代碼
class Solution {public int translateNum(int num) {String s = String.valueOf(num);return bc(s,0);}public int bc(String s,int cur){if(cur>=s.length()-1)return 1;int t=0,n=Integer.parseInt(s.substring(cur,cur+2));if(n>=10&&n<26){t=bc(s,cur+2);}return bc(s,cur+1)+t;}
}