#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    
    int solve(string nums) {
        // write code here
        if(nums.empty()) return 0;
        if(nums=="0") return 0;
        int n=nums.size();
        cout<<n;
        // if(nums.at(0)=='0') {nums = nums.substr(1,n-1);n--;}

        if(n==1) {if(nums=="0") return 0;
                    else return 1;}
        vector<int> dp(n+1,1);

        for(int i=2;i<=n;i++){
            if(nums[i-1]=='0') {
                if(nums[i-2]=='0' || nums[i-2]>='3') return 0;
                cout<<1;dp[i]=dp[i-2];
                }
            else {
                if(nums[i-2]=='0') {cout<<12;dp[i]=dp[i-1];}
                else if(nums[i-2]=='1') {cout<<123;dp[i]=dp[i-1]+dp[i-2];}
                else if(nums[i-2]=='2' && nums[i-1]<='6') {cout<<1234;dp[i]=dp[i-1]+dp[i-2];}
                else {cout<<12345;dp[i]=dp[i-1];}
            }
 
            // dp[i] = dp[i-1]+dp[i-2];
        }
        return dp[n];


    }
};