import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
if (nums.contains("00")) {
return 0;
}
char[] charArray = nums.toCharArray();
if (charArray[0] == '0') {
return 0;
}
int n = charArray.length;
int result = 1;
int lastlastInt = 100;
int[] dp = new int[n];
dp[0] = 1;
for (int i = 1; i < n; i++) {
int lastInt = Integer.parseInt(charArray[i - 1] + String.valueOf(charArray[i]));
if (lastInt <= 26) {
if (i >= 2) {
lastlastInt = Integer.parseInt(charArray[i - 2] + String.valueOf(
charArray[i - 1]));
}
if (lastlastInt <= 26) {
if (charArray[i - 1] != '0') {
result += dp[i - 2];
}
} else {
if (charArray[i] != '0') {
result *= 2;
}
}
} else {
if (charArray[i] == '0') {
return 0;
}
}
dp[i] = result;
}
return result;
}
}