2021年9月8日08:29:34
2021年9月8日09:18:29

class Solution {
    public int translateNum(int num) {
        String str = String.valueOf(num);
        int len = str.length();

        int[] dp = new int [len];
        if(len == 0) return 0;

// 初始化 dp[0]  如果 先判断 如果len==1 直接就返回 不能再继续判断
        if(len == 1) return 1;
        dp[0] = 1;

// 初始化 dp[1] 注意事项 len  >= 2  最开始写成了 len == 2
//len >= 2 判断条件可以去掉 因为运行到这步 已经 大于等于2了
        if(len >= 2 && str.compareTo("25") <= 0 && str.compareTo("10") >= 0) dp[1] = 2;
        else dp[1] = 1;

        for(int i=2; i<len ; i++){
            String cur = str.substring(i-1, i+1);
// dp就是 如果 最后两位在这个范围内, dp[i] = dp[i-1] + dp[i-2] 否则的话就只能是 dp[i-1]
            if(cur.compareTo("25") <= 0 && cur.compareTo("10") >= 0) dp[i] = dp[i-1] + dp[i-2];
            else dp[i] = dp[i-1] ;
        }

        return dp[len-1];
    }
}