解题思路:采用动态规划来解决:关键是状态转移方程的全面考虑
s[i-1]='2' && s[i]>='1' &&s[i]<='6'
int numDecodings(string s) {
if (s.empty() || s[0] == '0')
return 0;
int num2 = 1;
int num1 = 1;
int num = 1;
for (int i = 1; i < s.size(); i++)
{
if (s[i] == '0')
{
if (s[i - 1] == '1' || s[i - 1] == '2')
num = num2;
else
return 0;
}
else
{
if (s[i - 1] == '1')
num = num1 + num2;
else if (s[i - 1] == '2' && s[i] >= '1' &&s[i] <= '6')
num = num1 + num2;
else
num = num1;
}
num2 = num1;
num1 = num;
}
return num;
}