zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 91 解码方法

    91. 解码方法

    一条包含字母 A-Z 的消息通过以下方式进行了编码:

    ‘A’ -> 1
    ‘B’ -> 2

    ‘Z’ -> 26
    给定一个只包含数字的非空字符串,请计算解码方法的总数。

    示例 1:

    输入: “12”
    输出: 2
    解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。
    示例 2:

    输入: “226”
    输出: 3
    解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。

    class Solution {
           public int numDecodings(String s) {
         if(s == null || s.length() == 0) {
                return 0;
            }
            int n = s.length();
            int[] dp = new int[n+1];
            dp[0] = 1;
            dp[1] = (s.charAt(0) == '0' ? 0 : 1);  
            for(int i=1; i<n; i++) {
                char c = s.charAt(i);
                char pre = s.charAt(i-1);
                dp[i+1] = c == '0' ? 0 : dp[i];
                if(pre == '1' || (pre == '2' && c <= '6')) {
                    dp[i+1] += dp[i-1];
                }
            } 
            return dp[n];
        }
    }
    
  • 相关阅读:
    Shell Sort 希尔排序
    Quick Sort 快速排序
    Merge Sort 归并排序
    Insertion Sort
    Bubble Sort
    dubbo的异常栈问题
    IoC 容器
    .Net Core集成RabbitMQ
    .NET CORE Skywalking的集成
    制造业的信息化之路
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946821.html
Copyright © 2011-2022 走看看