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