###### LeetCode | Decode Ways

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.

class Solution {
public:
int numDecodings(string s) {
if(s.empty())
return 0;
int result=0;
getResult(&result, s, 0);
return result;
}
void getResult(int* result, string& s, int k)
{
if(k == s.length())
{
(*result)++;
return;
}
if(s[k] != '0')
getResult(result, s,k+1);
else//0为一位数字或两位数字的第一位时，直接返回，没有结果
return;
if(k<s.length()-1)
{
if(s[k]=='1' || (s[k]=='2' && s[k+1]<='6'))
getResult(result, s, k+2);
}
}
};

class Solution {
public:
int numDecodings(string s) {
if(s.empty())
return 0;
int len = s.length();
int* F = new int[len+1];
for(int i=0; i<=len; ++i)
F[i] = 0;
if(s[0] == '0')
return 0;
if(s[0] == '1' || (s[0] == '2' && s[1] <= '6'))
F[0] = 1;
if(s[1] != '0')
F[1] = 1;
for(int i=2; i<=len; ++i)
{
if(s[i-1] != '0')
F[i] += F[i-1];
if(s[i-2] == '1' || (s[i-2] == '2' && s[i-1] <= '6'))
F[i] += F[i-2];
}
return F[len];
}
};

#### Leetcode Decode Ways 解题报告

2014-02-25 23:06:03

#### Leetcode 91. Decode Ways 路线解析 解题报告

2016-07-08 20:31:55

#### LeetCode91:Decode Ways

2015-06-18 18:17:39

#### LeetCode 91. Decode Ways（解码方法）

2016-05-23 00:42:32

#### LeetCode 91 Decode Ways (Python详解及实现)

2017-08-10 10:18:48

#### leetcode 639. Decode Ways II

2017-10-14 20:51:02

#### Decode Ways -- LeetCode

2014-04-27 06:18:13

#### leetCode 91.Decode Ways (解码方式) 解题思路和方法

2015-07-27 09:49:37

#### [Leetcode]91. Decode Ways@python

2016-01-23 18:38:34

#### leetcode 91 c++. Decode Ways

2016-12-14 10:48:59

## 不良信息举报

LeetCode | Decode Ways