
突然想明白这是动态规划
class Solution {
public:
int numDecodings(string s) {
int res[100];
memset(res,0,sizeof(res));
if(s[0]==‘0‘) return 0;
res[0]=1;
if(s.length()==1) return 1;
if(atoi(s.substr(0,2).c_str())<=26) res[1]+=1;
if(s[1]!=‘0‘) res[1]+=1;
int i;
for(i=2;i<s.length();i++){
if(s[i]!=‘0‘) res[i]+=res[i-1];
if(atoi(s.substr(i-1,2).c_str())<=26 && s[i-1]!=‘0‘) res[i]+=res[i-2];
}
for(i=0;i<s.length();i++) cout<<res[i]<<" ";
return res[s.length()-1];
}
};
原文:https://www.cnblogs.com/hyffff/p/14689168.html