[LeetCode]Decode Ways「建议收藏」

[LeetCode]Decode Ways

大家好,又见面了,我是全栈君。

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.

迭代较简单,递归超时

public class Solution {
	public int numDecodings(String s) {
		int len = s.length();
		if(len == 0) return 0;
		int prev = 1;
		int cur = s.charAt(0)>'0'?1:0;
		if(cur == 0) return 0;
		for(int i=1;i<len;i++){
			int temp = cur;
			int comp = Integer.parseInt(s.substring(i-1,i+1));
			if(s.charAt(i)=='0'){
				char c = s.charAt(i-1);
				if(c=='1'||c=='2'){
				    cur = prev;
					prev = temp;
					continue;
				}else{
					return 0;
				}
			}else if(comp<10||comp>26) {
				prev = temp;
				continue;
			}
			cur += prev;
			prev = temp;
		}
		return cur;
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115911.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java NIO与IO的差别和比較

    Java NIO与IO的差别和比較

    2021年12月6日
    37
  • Linux安装Jenkins教程

    Linux安装Jenkins教程Linux安装Jenkins教程网址https://pkg.jenkins.io/redhat-stable/选择最新的版本下载下载好了将文件上传到服务器然后执行命令rpm-ivhjenkins-2.7.3-1.1.noarch.rpm(版本自己对应上!!这里我只是举例)Jenkins默认的端口是8080,如果你的tomcat也是,那你得修改下进入vi/etc/sysc…

    2022年5月14日
    29
  • 国内软件外包公司排行榜是怎么样的

    国内软件外包公司排行榜是怎么样的由于互联网技术的快速发展,特别是手机移动端的的普及,使得企业越来越需要开发自己自己的软件,但是软件开发人才缺口很大,企业没有这个技术实力去开发自己的软件,对于中小企业也不好招人,而这软件外包开发公司就可以帮助企业实现目标,这其中鱼龙混杂,让不少想要软件外包开发的企业难以选择,那么国内软件外包公司排行榜是怎么样的呢?下面为大家介绍华盛恒辉排名靠前的原因。1、报价适中提供同样服务…

    2022年5月26日
    64
  • Java–链表ListNode

    今天我们来介绍一下Java中的链表,作者依旧尽量用白话解释,希望能帮到大家链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。上面是链表的定义,那么我们用通俗点的语言…

    2022年4月6日
    159
  • vue长列表渲染_vray渲染白模教程

    vue长列表渲染_vray渲染白模教程循环在模板中可以用v-for指令来循环数组,对象等。循环数组我们可以用v-for指令基于一个数组来渲染一个列表。v-for指令需要使用iteminitems形式的特殊语法,其中it

    2022年7月29日
    10
  • 浅谈VB.NET[通俗易懂]

    浅谈VB.NET[通俗易懂]浅谈VB.NET

    2022年4月24日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号