[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQLyog 64位激活成功教程版 v12.09[通俗易懂]

    SQLyog 64位激活成功教程版 v12.09[通俗易懂]激活成功教程教程1、安装完成后运行软件,启动时选择“简体中文”语言种类启动软件;image2、选择完成后弹出注册窗口,我们将软件的注册码:名称:ddooo;证书秘钥:8d8120df-a5c3-4989-8f47-5afc79c56e7c;逐一填到软件的注册框内,点击“注册”按钮,sqlyog会自动检测注册信息;image3、当出现下图软件注册成功的提示时,软件成功注册激活;image…

    2022年9月24日
    2
  • 数据仓库分三层_数据库分层

    数据仓库分三层_数据库分层数据仓库各层说明: 一、数据加载层:ETL(Extract-Transform-Load) 二、数据运营层:ODS(OperationalDataStore) 三、数据仓库层:DW(DataWarehouse) 1.数据明细层:DWD(DataWarehouseDetail) 2.数据中间层:DWM(DataWareHouseMiddle) 3.数据服务层:DWS(DataWareHouseService) 四、数据应用层:A

    2022年9月26日
    2
  • 关于web前端性能优化总结[通俗易懂]

    关于web前端性能优化总结[通俗易懂]1、从DOM结构和标签上来优化·使用语义化的标签,代码清晰简洁;·减少Dom节点,增加渲染速度;·使用W3C标准书写闭合小写的标签;·给图片和table指定宽高,避免缩放;·防止src和href值为空,当为空时,浏览器会把当前页面当做属性值重新加载;·css在头部位置,js在body底部位置; 2、从CSS样式上来优化·使用link加载样式而不是@import(是css2提供的一种方式,不兼容,只…

    2022年6月16日
    33
  • JAVA学习篇–JSTL基金会

    JAVA学习篇–JSTL基金会

    2022年1月7日
    47
  • 下载安装cygwin_ansys17安装教程详细

    下载安装cygwin_ansys17安装教程详细windows下安装cygwin软件详细过程

    2025年6月18日
    4
  • 查看linux执行的命令记录_tail命令查看最后100行日志

    查看linux执行的命令记录_tail命令查看最后100行日志前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月28日
    20

发表回复

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

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