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