当前位置 : 主页 > 网页制作 > HTTP/TCP >

91. Decode Ways

来源:互联网 收集:自由互联 发布时间:2021-06-16
A message containing letters from A-Z is being encoded to numbers using the following mapping: ‘A‘ - 1‘B‘ - 2...‘Z‘ - 26 Given anon-emptystring containing only digits, determine the total number of ways to decode it. Example 1:

A message containing letters from A-Z is being encoded to numbers using the following mapping:

‘A‘ -> 1
‘B‘ -> 2
...
‘Z‘ -> 26

Given a non-empty string containing only digits, determine the total number of ways to decode it.

Example 1:

Input: "12"
Output: 2
Explanation: It could be decoded as "AB" (1 2) or "L" (12).

Example 2:

Input: "226"
Output: 3
Explanation: It could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).

class Solution {
public:
    int numDecodings(string s) {
        int n=s.size();
        vector<int> dp(n+1);
        dp[0]=1;
        dp[1]=0==s[0]?0:1;
        for(int i=2;i<=s.size();++i)
        {
            int first=s[i-1]-0;
            int second=(s[i-2]-0)*10+first;
            if(first>=1&&first<=9)dp[i]=dp[i-1];
            if(second>=10&&second<=26) dp[i]+=dp[i-2];
        }
        return dp[n];
    }
};
上一篇:POJ - 1840 - Eqs = 思维
下一篇:PTA 甲级 1139
网友评论