Leetcode 91. Decode Ways JAVA语言

简介:
1
2
3
4
5
6
7
8
9
10
11
12
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.
 
Subscribe to see which companies asked this question.
Show Tags

题意:A->1  B->2 ...Z->26;给出一个数字字符串,求可能的驿码方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public  class  Solution {
     public  int  numDecodings(String s) {
         int  length=s.length();
         if (s== null  || length== 0 ) return  0 ;
         int [] dp= new  int [length+ 1 ];
         dp[ 0 ]= 1 ;
         dp[ 1 ]=s.charAt( 0 )== '0' ? 0 : 1 ;
         for ( int  i= 2 ;i<=length;i++){
             int  first=Integer.valueOf(s.substring(i- 1 ,i));
             int  second=Integer.valueOf(s.substring(i- 2 ,i));
             if (first> 0 &&first< 10 ){
                 dp[i]+=dp[i- 1 ];
             }
             if (second>= 10  && second<= 26 ){
                 dp[i]+=dp[i- 2 ];
             }
         }
         return  dp[length];
     }
}

PS:看大神说可以用dp...第一次用。。其实有一小点还不明白,dp[0]=1是为什么呢


本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1902575


相关文章
|
13天前
|
Oracle 安全 Java
Java语言简介及发展
Java语言简介及发展
|
3天前
|
算法 Java 编译器
透视Java语言的究极优化:探索性能的深度
在Java程序员的日常工作中,优化代码性能是一项至关重要的任务。然而,除了传统的性能调优方法外,本文将探讨一些更为深奥的技术,如JIT编译器的内部工作机制、GC算法的进阶应用以及多线程并发模型的优化策略。通过深入了解这些技术背后的原理和实现,我们可以更好地理解如何在Java平台上实现最高效的代码运行。 【7月更文挑战第11天】
11 4
|
20天前
|
算法 Java
垃圾回收机制(Garbage Collection,GC)是Java语言的一个重要特性,它自动管理程序运行过程中不再使用的内存空间。
【6月更文挑战第24天】Java的GC自动回收不再使用的内存,关注堆中的对象。通过标记-清除、复制、压缩和分代等算法识别无用对象。GC分为Minor、Major和Full类型,针对年轻代、老年代或整个堆进行回收。性能优化涉及算法选择和参数调整。
23 3
|
2天前
|
Java 大数据 API
Java语言的核心知识点与特性
Java 是一种广泛使用的编程语言,自 1995 年发布以来,它已经成为了企业级应用开发、移动应用开发、大数据处理和云计算等领域的主流技术。
9 0
|
26天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
30 3
|
27天前
|
算法 Java
[Java·算法·简单] LeetCode 283. 移动零
[Java·算法·简单] LeetCode 283. 移动零
23 2
|
27天前
|
算法 Java
[Java·算法·中等] LeetCode21. 合并两个有序链表
[Java·算法·中等] LeetCode21. 合并两个有序链表
18 2
|
6天前
|
设计模式 算法 Oracle
Java语言学习路径及学习资源推荐
Java语言学习路径及学习资源推荐
|
6天前
|
JavaScript 前端开发 Java
Java语言+前后端分离 数字化产科管理平台 产科电子病历系统源码
Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等功能,与HIS等系统对接。采用前后端分离架构,Java语言,Vue前端,MySQL数据库。优势在于提升就诊效率,降低漏检率,自动报表生成,减少重复工作,支持数据研究,并实现医院与卫计委平台的数据互通,打造全生育周期健康服务。
8 0
|
26天前
|
Java 大数据 API