Decode Ways问题及解法

2023-05-16

问题描述:

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.

示例:
Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12).

The number of ways decoding "12" is 2.

问题分析:

根据题意可知,这是一道动态规划题。dp是状态转移数组,对于s[i - 1] 和 s[i]的不同取值,dp的对应转换过程也不相同。


过程详见代码:

class Solution {
public:
    int numDecodings(string s) {
        int len = s.length();
        if (!len || s[0] == '0') return 0;
		vector<int> dp(len + 1, 0);
		dp[1] = 1;
        dp[0] = 1;
		for (int i = 1; i < len; i++)
		{
            int t = (s[i - 1] - '0') * 10 + s[i] - '0';
            if(!t || t > 26 && t % 10 == 0) return 0;
            else if(t < 10 || t > 26) dp[i + 1] = dp[i];
            else if(t == 10 || t == 20) dp[i + 1] = dp[i - 1];
            else dp[i + 1] = dp[i] + dp[i - 1];
		}
		return dp[len];
    }
};


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Decode Ways问题及解法 的相关文章

  • 下载网页视频的方法

    随着技术的不断更新 xff0c 现在小视频越来越火 xff0c 有的时候想保存浏览的小视频 xff0c 可不知道如何下载 xff1f 对于一些非专业的视频网站的小视频应该通过浏览器的选项是可以下载和保存的 下面就介绍使用浏览器下载的方法 1

随机推荐

  • tomcat8.0.9的安装

    免安装版的tomcat http download csdn net detail u011731233 7632475 这个解压之后 xff0c 在myeclipse中指定到tomcat目录就可以用了 xff0c 也不用配置环境变量 下载
  • 【多线程/C++】阻塞队列的C++多线程 实现 BlockingQueue

    阻塞队列在存放和获取队列中的数据时需要使用多线程 xff0c 一个线程专门负责向队列中存放元素 xff0c 另一个线程专门从队列中获取元素 也可多开辟跟多的线程进行存取 规范的方法也正是存放和获取队列元素分别在不同的线程中实现 阻塞队列实现
  • Log4J使用详解(整理)

    1 Log4j是什么 Log4j是Apache的一个开源项目 xff0c 通过使用Log4j xff0c 我们可以控制日志信息输送的目的地是控制台 文件 GUI组件 xff0c 甚至是套接口服务器 NT的事件记录器 UNIX Syslog守
  • DelphiXE10.2.3实现线程安全访问数据和对象(四)——实现原子自旋锁的无锁对象池

    无锁对象池与无锁Hash是不同应用场景中使用 xff0c 无锁Hash只是预先创建好Hash表 xff08 当然也可以动态Add xff09 后 xff0c 供调用者通过Key值快速找到保存的数据 xff0c 并读取 xff08 这里就只能
  • init进程详细分析--基于android 10

    init进程详细分析 概述 android设备上电 xff0c 引导程序引导进入boot 通常是uboot xff0c 加载initramfs kernel镜像 xff0c 启动kernel后 xff0c 进入用户态程序 第一个用户空间程序
  • commons-logging的使用

    简介 commons logging是Apache commons类库中的一员 Apache commons类库是一个通用的类库 xff0c 提供了基础的功能 xff0c 比如说commons fileupload xff0c common
  • 年度最理性 AI 分析文章:预测 AI 未来,大部分人陷入了 7 大误区

    来源 xff1a 36氪 概要 xff1a 错误的预测会导致大家对不会发生的事情感到恐惧 为什么在人工智能和机器人的预测上总有人不断犯错呢 xff1f 想着预测未来 xff0c 却一不小心就陷入了yy 近年来图像识别突破 Waymo无人车上
  • slf4j的使用

    OK xff0c 现在我们来使用slf4j 概念 SLF4J xff0c 即简单日志门面 xff08 Simple Logging Facade for Java xff09 xff0c 不是具体的日志解决方案 xff0c 它只服务于各种各
  • Java日志管理最佳实践

    原文出处 xff1a http www ibm com developerworks cn java j lo practicelog 感谢原作者 xff0c 感谢ibm网站 xff0c 里面有好多的精华帖 日志记录是应用程序运行中必不可少
  • MySQL数据类型--浮点数类型和定点数类型

    MySQL中使用浮点数类型和定点数类型来表示小数 浮点数类型包括单精度浮点数 xff08 float型 xff09 和双精度浮点数 xff08 double型 xff09 定点数类型就是decimal型 OK xff0c 现在我们来看看这几
  • MySQL数据类型--日期和时间类型

    MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的 MySQL中有多种表示日期和时间的数据类型 其中 xff0c year类型表示时间 xff0c date类型表示日期 xff0c time类型表
  • MySQL数据类型--二进制类型

    二进制类型是在数据库中存储二进制数据的数据类型 二进制类型包括binary xff0c varbinary xff0c bit xff0c tinyblob xff0c blob xff0c mediumblob xff0c longblo
  • 单行注释和多行注释

    我们在实际编码中 xff0c 总是需要为程序添加一些注释 什么是注释 xff1f 注释就是一段文字 xff0c 这段文字并不是必须的 xff0c 也不直接参与代码运行 注释用来说明某段代码的作用 xff0c 或者说明某个类的用途 xff0c
  • Integer源码解析

    这篇博客我来整理下以Integer为例整理下包装类的源码 首先来看一段代码 xff1a public class LinkinPark public static void main String args Integer a 61 1 I
  • 不可变类

    不可变类 先来科普2个概念 xff0c 可变类和不可变类 1 xff09 xff0c 不可变类的意思就是创建该类的实例后 xff0c 该实例的实例变量是不可改变的 Java提供的8个包装类和String类都是不可变类 xff0c 当创建他们
  • 博客迁移<a>jiangweili.me</a>

    各位 xff0c 我的博客已经迁移 xff0c 具体请移步新博客地址 我会重新整理JavaSE和JavaEE相关 xff0c 最后搭建自己的一套web框架 xff0c 谢谢各位
  • Mac环境下localhhost无法访问

    今天访问本地服务器 localhost 提示无法访问 查看apache 错误日志最后一行提示以下错误 于是经过百度 搜索 34 AH00045 child process 1409 still did not exit sending a
  • RNAseq---Hisat2 标准输出中比对率信息解读

    RNA Seq Hisat2 标准输出中比对率信息解读 本文具体解释部分 xff08 一 xff09 中内容复制自Biostar内容 xff0c 后面附上我实际的例子 xff0c 二者略有不同 xff0c 整体理解上没大问题 xff0c 有
  • 解决Android单个dex文件不能超过65535个方法问题

    一 找坑 xff1a 谷歌规定单个dex文件中的方法不能超过65536的限制 我们编写项目过程中在工程的lib文件夹下引用的第三方插件jar包太多 或者项目过大 xff0c 编译运行时就有可能报出com android dex DexInd
  • Decode Ways问题及解法

    问题描述 xff1a A message containing letters from A Z is being encoded to numbers using the following mapping 39 A 39 gt 1 39