解码方法

代码:
class Solution {
public:
/**
* @param s a string, encoded message
* @return an integer, the number of ways decoding
*/
int numDecodings(string& s) {
if (s.empty()) return 0;
int n = s.size();
vector dp(n + 2, 1);
for (int i = 2; i < n + 2; ++i) {
if (s[i - 2] == '0') dp[i] = 0;
else dp[i] = dp[i - 1];
if (i >= 3 && (s[i - 3] == '1' || (s[i - 3] == '2' && s[i - 2] <= '6'))) {
dp[i] += dp[i -2];
}
}
return dp.back();
}
};

posted on 2017-08-17 23:04  p666  阅读(207)  评论(0编辑  收藏  举报

导航