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