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];
}
}


京公网安备 11010502036488号