class Solution {
public:
/**
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
int solve(string nums) {
// write code here
int dp[nums.length()];
if(nums.length()==0) return 0;
if(nums[0]=='0') return 0;
dp[0]=1;
int j=1;
for(int i=1;i<nums.length();i++){
if(nums[i] == '0'){
int sum=0;
sum = (nums[i] - '0') + ((nums[i-1] - '0') * 10);
if(sum > 26 || sum == 0) return 0;
else dp[j]=dp[j-1];
j++;
}
if(nums[i] != '0'){
if(nums[i-1] == '0'){
dp[j] = dp[j-1];
continue;
}
int sum=0;
sum = (nums[i] - '0') + ((nums[i-1] - '0') * 10);
if(sum > 26) dp[j]=dp[j-1];
else{
if(j-2<0) dp[j]=dp[j-1]+1;
else dp[j]=dp[j-1] + dp[j-2];
}
j++;
}
}
return dp[j-1];
}
};