剑指offer
作者:互联网
import java.util.*;
public class Solution {
/**
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
// write code here
int[] dp = new int[nums.length() + 1];
dp[0] = 1;
dp[1] = nums.charAt(0) == '0' ? 0 : 1;
for(int i = 2; i <= nums.length(); i++){
dp[i] = nums.charAt(i-1)=='0' ? 0 : dp[i-1];
if(nums.charAt(i-2) == '1' || (nums.charAt(i-2) =='2' && nums.charAt(i-1) <= '6')){
dp[i] += dp[i-2];
}
}
return dp[nums.length()];
}
}
能否加上dp[i-1]、dp[i-2]取决于分开的能否独立,所以需要重点关注0,和小于26的两位数。
标签:code,nums,int,offer,能否,public,dp 来源: https://blog.csdn.net/qq_39515350/article/details/121525676