class Solution {
public:
int numDecodings(string s) {
vector<int> dp(s.length()+1);//dp[i]表示了s[i]到s[s.length()-1] 所能形成解码的方式的数目
int n=s.length();
if(n==0) return 0;
dp[n]=1;//当s为空的时候解码方式只有一个
dp[n-1]=(s[n-1]=='0')?0:1;//s[n-1]为'0'时 解码个数为0 否则为1
for(int i=n-2;i>=0;i--)
{
if(s[i]=='0')
continue;
else if(stoi(s.substr(i,2))<=26)
dp[i]=dp[i+1]+dp[i+2];
else
dp[i]=dp[i+1];
}
return dp[0];
}
};
91. Decode Ways
最新推荐文章于 2021-05-13 11:22:14 发布