dp[i] 表示以第i位字符结尾的字符串 有多少种解码方式
分为两种状态:
1。第i位单独解码 那么dp[i]=dp[i-1];
2。如果第i-1位和第i位可以组合 那么相对于前i-2位的字符串来说 就相当于加上了一个二位数
此时dp[i]=dp[i]+dp[i-2];
代码如下:
class Solution {
public:
int getTranslationCount(string s) {
vector<int>dp(s.length()+1,0);
dp[0]=dp[1]=1;
for(int i=2;i<=s.length();i++)
{
dp[i]=dp[i-1];
int k=s[i-1]-'0';
int k1=s[i-2]-'0';
if(k1*10+k<=25&&k1) dp[i]+=dp[i-2];
}
return dp[s.length()];
}
};