zoukankan      html  css  js  c++  java
  • 091 Decode Ways 解码方法

    包含 A-Z 的字母的消息通过以下规则编码:
    'A' -> 1
    'B' -> 2
    ...
    'Z' -> 26
    给定一个包含数字的编码消息,请确定解码方法的总数。
    例如,
    给定消息为 "12", 它可以解码为 "AB"(1 2)或 "L"(12)。
    "12" 的解码方法为 2 种。
    详见:https://leetcode.com/problems/decode-ways/description/

    Java实现:

    class Solution {
        public int numDecodings(String s) {
            if (s.length()==0||s.isEmpty()||s.equals("0")){
                return 0;
            }
    
            int[] dp = new int[s.length()+1];  
            dp[0] = 1;  
            
            if (isValid(s.substring(0,1))){
                dp[1]=1;
            }else{
                dp[1]=0;
            } 
            
            for(int i=2; i<=s.length();i++){  
                if (isValid(s.substring(i-1,i))){
                    dp[i]+=dp[i-1];
                }
                if (isValid(s.substring(i-2,i))){
                    dp[i]+=dp[i-2];
                }  
            }  
            return dp[s.length()];  
        }  
          
        public boolean isValid(String s){  
            if (s.charAt(0)=='0') {
                return false;
            } 
            int code = Integer.parseInt(s);  
            return code>=1 && code<=26;  
        }
    }
    

    详见:https://www.cnblogs.com/springfor/p/3896162.html 

  • 相关阅读:
    开源交易所源码搜集
    域名
    国外大牛博客
    Fomo3D代码分析以及漏洞攻击演示
    Small组件化重构安卓项目
    html span和div的区别
    七牛云
    以太坊钱包安全性保证
    跨域问题
    checkout 到bit/master分支
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8716857.html
Copyright © 2011-2022 走看看