class Solution {
public:
int solve(string nums) {
nums=nums;
vector<pair<int,int>>dp(nums.length()+1,{0,0});
if(nums[0]=='0')return 0;
else dp[0].first=1;
for(int i=1;i<nums.length();i++)
{
if(nums[i]!='0')
{
dp[i].first=dp[i-1].first+dp[i-1].second;
if(nums[i-1]>'2'||nums[i-1]=='0')dp[i].second=0;
else if(nums[i-1]=='2'&&nums[i]>'6')dp[i].second=0;
else dp[i].second=dp[i-1].first;
}
else
{
dp[i].first=0;
if(nums[i-1]!='0'&&nums[i-1]<'3')dp[i].second=dp[i-1].first;
else dp[i].second=0;
}
}
return dp[nums.length()-1].first+dp[nums.length()-1].second;
}
};