class Solution { public: /** * 解码 * @param nums string字符串 数字串 * @return int整型 */ int solve(string nums) { // write code here int dp[nums.length()]; if(nums.length()==0) return 0; if(nums[0]=='0') return 0; dp[0]=1; int j=1; for(int i=1;i<nums.length();i++){ if(nums[i] == '0'){ int sum=0; sum = (nums[i] - '0') + ((nums[i-1] - '0') * 10); if(sum > 26 || sum == 0) return 0; else dp[j]=dp[j-1]; j++; } if(nums[i] != '0'){ if(nums[i-1] == '0'){ dp[j] = dp[j-1]; continue; } int sum=0; sum = (nums[i] - '0') + ((nums[i-1] - '0') * 10); if(sum > 26) dp[j]=dp[j-1]; else{ if(j-2<0) dp[j]=dp[j-1]+1; else dp[j]=dp[j-1] + dp[j-2]; } j++; } } return dp[j-1]; } };