您的位置:首页 > 其它

leetcode: Decode Ways

2016-02-20 14:08 387 查看
A message containing letters from
A-Z
is being encoded to numbers using the following
mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26


Given an encoded message containing digits, determine the total number of ways to decode it.

For example,

Given encoded message
"12"
, it could be decoded as
"AB"
(1
2) or
"L"
(12).

The number of ways decoding
"12"
is 2.

Subscribe to see which companies asked this question

class Solution {
public:
int numDecodings(string s) {

if (s.size() == 0)
return 0;
vector<int> dp(s.size()+1);

dp[0] = 1;
if (s[0] != '0')
dp[1] = 1;
else
dp[1] = 0; //一定要注意这个条件

for (int i=1; i<s.size(); i++)
{
if (s[i] != '0')
dp[i+1] = dp[i];

if ((s[i]>='0' && s[i] <='6' && s[i-1] =='2') || (s[i]>='0' && s[i]<='9' && s[i-1]=='1'))
{
dp[i+1] += dp[i-1];
}
}

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