zoukankan      html  css  js  c++  java
  • Leetcode 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) 。

     1 class Solution {
     2     public int numDecodings(String s) {
     3         if(s.charAt(0)=='0')
     4             return 0;
     5         if(s.length()==1){
     6             return 1;
     7         }
     8         int[] dp=new int[s.length()+1];
     9         dp[0]=1;
    10         dp[1]=1;
    11         for(int i=2;i<=s.length();i++){
    12             if(s.substring(i-2,i).length()>0 && s.substring(i-2,i).charAt(0)!='0'&& s.substring(i-2,i).charAt(1)!='0' && Integer.valueOf(s.substring(i-2,i))<=26){
    13                 dp[i]=(dp[i-1]+dp[i-2]);
    14             }
    15             else{
    16                 if(s.charAt(i-1)=='0' && s.charAt(i-2)!='0'){
    17                     if(Integer.valueOf(s.substring(i-2,i))>26)
    18                         return 0;
    19                     dp[i]=dp[i-2];
    20                 }
    21                 else if(s.charAt(i-1)!='0')
    22                     dp[i]=dp[i-1];
    23                 else
    24                     return 0;
    25             }
    26         }
    27         return dp[s.length()];
    28     }
    29 }
  • 相关阅读:
    C
    如何让asp.net mvc 直接运行mobile页面
    Nuget找不到服务器
    C#调用R语言输出图片
    sql列转行
    C#读取注册表
    关于这个博客,关于我
    NOIP 2016 简要题解
    CSP2019 题解
    CF 练死劲
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10196082.html
Copyright © 2011-2022 走看看