1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public int translateNum(int num) { String str = String.valueOf(num);
int[] dp = new int[str.length() + 1]; dp[0] = 1; dp[1] = 1;
for (int i = 2; i <= str.length(); i++) { char x = str.charAt(i - 2), y = str.charAt(i - 1); if (x == '1' || (x == '2' && y <= '5')) { dp[i] = dp[i - 1] + dp[i - 2]; } else { dp[i] = dp[i - 1]; } }
return dp[str.length()]; } }
|