zoukankan      html  css  js  c++  java
  • 91. Decode Ways (Array; DP)

    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.length()== 0 || s[0] == '0') return 0;
            int* dp = new int [s.length()+1];
            dp[0] = 1;dp[1]=1;
         
            for (int i = 1; i < s.length(); i++)
            {
                if(s[i] == '0')
                {
                    if(s[i-1] != '1' && s[i-1] != '2') return 0;
                    else dp[i+1] = dp[i-1];
                }
                else if(s[i-1] == '1' || (s[i] <= '6' && s[i-1] == '2'))
                {
                    dp[i+1] = dp[i] + dp[i-1];
                }
                else
                    dp[i+1] = dp[i];
            }
            return dp[s.length()];
        }
    };
  • 相关阅读:
    学习篇之String()
    js之Math对象
    js之date()对象
    css之描点定位方式
    js详解之作用域-实例
    js精要之构造函数
    js精要之继承
    js精要之模块模式
    js精要之对象属性
    js精要之函数
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4878944.html
Copyright © 2011-2022 走看看