一、题目内容

image.png

二、题解

解法1:

思路

转移方程
后两位可单独翻译,则
dp[i] = dp[i-1] + dp[i-2]
否则
dp[i] = dp[i-1]

image.png

代码

  1. public class Solution {
  2. public int translateNum(int num) {
  3. String str = String.valueOf(num);
  4. int[] dp = new int[str.length() + 1];
  5. dp[0] = 1;
  6. dp[1] = 1;
  7. for (int i = 2; i <= str.length(); i++) {
  8. String temp = str.substring(i - 2, i);
  9. dp[i] = temp.compareTo("10") >= 0 && temp.compareTo("25") <= 0 ? dp[i - 1] + dp[i - 2] : dp[i - 1];
  10. }
  11. return dp[str.length()];
  12. }
  13. }
  1. public class Solution {
  2. public int translateNum(int num) {
  3. String s = String.valueOf(num);
  4. int a = 1, b = 1;
  5. for (int i = 2; i <= s.length(); i++) {
  6. String tmp = s.substring(i - 2, i);
  7. int c = tmp.compareTo("10") >= 0 && tmp.compareTo("25") <= 0 ? a + b : a;
  8. b = a;
  9. a = c;
  10. }
  11. return a;
  12. }
  13. }