您的位置:首页 > 其它

[leetcode]Decode Ways

2015-10-14 16:35 453 查看
class Solution {//dp
public:
int numDecodings(string s) {
int len=s.length();
if(len<1){
return 0;
}
vector<int> f(len,0);//f[i]表示到第i个字符的decoding ways
for(int i=0;i<len;++i){
if(i==0){
if(s[i]>='1'&&s[i]<='9'){
f[0]=1;
}
}else{//i>=1
string tmp(s,i-1,2);//截取s[i-1]s[i]
if(tmp>="10"&&tmp<="26"){
if(i>1){
f[i]+=f[i-2];
}else{//i==1,没有i - 2这个index
f[i]+=1;
}
}

if(s[i]>='1'&&s[i]<='9'){
f[i]+=f[i-1];
}
}

}
return f[len-1];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: