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