import java.util.*;
public class Solution {
/**
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
if(nums == null) {
return 0 ;
}
int len = nums.length() ;
//dp[i]表示前i个字符有多少中译码结果
int dp[] = new int[len+1] ;
dp[0] = 1 ;
if(nums.charAt(0)=='0') {
dp[1] = 0 ;
} else{
dp[1] = 1 ;
}
for(int i = 2 ; i <= len ; i ++) {
//看最后一个数字或者是最后俩个数字能不能被译码
//把这两种情况加起来就是总的种类数了
int last1 = Integer.parseInt(nums.substring(i-1 , i)) ;
if(last1 > 0) {
dp[i] = dp[i-1] ;
}
int last2 = Integer.parseInt(nums.substring(i-2 , i)) ;
if( last2 <= 26 && last2 >= 10) {
dp[i] += dp[i-2] ;
}
}
return dp[len] ;
}
}