代码
class Solution {
public:
int numDecodings(string s) {
int len = s.length();
if(len==0)
return 0;
int dp[len+1];
dp[0] = 1;
dp[1] = s[0]=='0'? 0:1;
for(int i = 2; i <= len; ++i)
{
if(s[i-1]!='0')
dp[i] = dp[i-1];
else dp[i] = 0;
if(s[i-2]=='1'||(s[i-2]=='2'&&s[i-1]<='6'))
dp[i] += dp[i-2];
}
return dp[len];
}
};参考自 http://www.cnblogs.com/TenosDoIt/p/3451920.html
本文介绍了一种使用动态规划解决字符串解码问题的方法,通过构建状态转移矩阵,逐步计算出不同长度字符串的解码数量,最终得出原始字符串的所有可能解码方式。
1139

被折叠的 条评论
为什么被折叠?



