using namespace std;
class Solution {
public:
    /**
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    int solve(string nums) {
        // write code here
        vector<int> dp(nums.size(),0);
        if(nums.size() == 0  || nums[0] == '0'){return 0;}
        dp[0] = 1;
        if((nums[0] == '1') || (nums[0] == '2' && int(nums[1] - '0')<27)){
            if(nums[1] != '0'){
                dp[1] = 2;
            }else{
                dp[1] = 1;
            }
            
        }
        else{
            dp[1] = 1;
        }
        for(int i = 2; i < nums.size(); i++){
            if (nums[i] == '0'){
              
                if((nums[i-1]== '1' )|| (nums[i-1] == '2')){
                    dp[i] = dp[i-2] ;
                }
                else{
                  return 0;
                }
            }
            else if ((nums[i-1]== '1')|| (nums[i-1] == '2'&& int(nums[i] - '0')<7)){
                
                    dp[i] = dp[i-1]  + dp[i-2];
              
            }
            else{
                dp[i] = dp[i-1] ;
            }
          cout<<"dp[i]"<<"   "<<dp[i]<<endl;
          cout<<"nums"<<"    "<<nums[i] - '0'<<endl;
        }
        return dp[nums.size()-1];
    }
};