力扣 -- 91.解码方法

news2025/1/12 9:56:19

题目链接:91. 解码方法 - 力扣(LeetCode) 

以下是用动态规划的思想解决这道题目,如果对动态规划五部曲的含义还不是很清楚的老铁可以看看本专栏的第一题动规(10条消息) 力扣 -- 746. 使用最小花费爬楼梯_KOBE 0824 BRYANT的博客-CSDN博客,这里有比较详细的解析动态规划五部曲的含义的,相信各位小伙伴都能看懂并且掌握这道题的。

参考代码:

class Solution {
public:
    int numDecodings(string s) {
        int n=s.size();
        //多开一个虚拟节点
        vector<int> dp(n+1);
        dp[0]=1;
        dp[1]=s[0]!='0';
        //如果s只有一个元素,那么应该直接返回
        if(n<2)
        {
            return dp[1];
        }
        //因为dp[0]和dp[1]已经填过了,所以从dp[2]开始填,因为多开了一个虚拟节点,所以应该填到dp[n]
        for(int i=2;i<=n;i++)
        {
            //这里写s[i-1]是调整了下标的映射关系,所有需要找s[i]的地方都要在原来的下标基础上减1
            //第一种情况
            if(s[i-1]!='0')
            {
                dp[i]+=dp[i-1];
            }
            int tmp=10*(s[i-2]-'0')+(s[i-1]-'0');
            //第二种情况
            if(tmp>=10&&tmp<=26)
            {
                dp[i]+=dp[i-2];
            }
        }
        return dp[n];
    }
};

以上就是分析这道dp题目的整个过程,虽然确实有点复杂,但是一步一步地分析,还是可以学明白的,加油,相信自己,动规是可以学会的。

你学会了吗?如果以上题解对你有所帮助,那么就点亮以下小心心呗,点点关注呗,后期还会持续更新动态规划的经典题目哦,我们下期见!!!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试编写文档模板【附文档模板】

一、测试岗位必备的文档 在一个常规的软件测试流程中&#xff0c;会涉及到测试计划、测试方案、测试用例、测试报告的编写&#xff0c;这些文档也是软件测试岗位必须掌握的文档类型。 1、测试计划 测试计划是组织管理层面的文件&#xff0c;从组织管理的角度对一次测试活动进…

华为OD机试真题 Python实现【最小的调整次数】【2023Q1 100分】

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Python算法源码七、效果展示1、输入2、输出3、说明 一、题目描述 有一个特异性的双端队列&#xff0c;该队列可以从头部或尾部添加数据&#xff0c;但是只能从头部移出数据。 小A依次执行2n个指令往队…

uboot详解(嵌入式学习)

uboot详解 概念详解扩展Windows的“uboot” 概念 U-Boot&#xff08;Unified Bootloader&#xff09;是一个开源的嵌入式系统引导加载程序&#xff0c;也是一种通用的引导加载程序。它主要用于嵌入式系统的启动过程&#xff0c;负责初始化硬件设备、加载操作系统内核和启动应用…

Android Studio 使用 Build Variants 配置测试/正式环境域名等字段

拿测试环境域名和正式环境域名举例&#xff1a;在项目调试和发版过程中可以通过频繁地注释和解开注释来切换正式环境域名和测试环境域名&#xff0c;但此方法过于繁琐&#xff1b;所以可以使用Android Studio的Build Variants根据切换环境来替我们执行切换环境的操作。 在项目…

《HelloGitHub》第 87 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …

可视化对讲广播电话可以用在哪里

可视化对讲广播电话可以用在哪里 可视化对讲广播电话&#xff1a;无处不在的沟通利器 【工地现场】 在矗立的高楼上&#xff0c;工地上忙碌的工人们使用着可视化对讲广播电话。借助高清画面和清晰音频&#xff0c;工作人员可以实时观察工地情况&#xff0c;更好地协调工作&a…

【【51单片机实现LED点阵屏幕和动画显示】】

LED点阵屏幕和驱动代码 我们先搞清楚&#xff17;&#xff14;HC&#xff15;&#xff19;&#xff15;的原理 &#xff53;&#xff46;&#xff52; 特殊功能寄存器声明 &#xff53;&#xff42;&#xff49;&#xff54; 特殊位声明 就举个例子&#xff0c;我们在之前的…

Linux后台运行Python脚本

Linux后台运行Python脚本命令&#xff1a; nohup python webui.py > myout.file 2>&1 &nohup&#xff1a;nohup命令用于不挂断地运行命令python&#xff1a;执行python代码的命令webui.py: python程序脚本源代码>: 打印程序输出信息到指定日志文件中myout.fi…

[vue]使用Element--Tree 树形控件使用props解决自定义slot-scope=“{ node, data }“的对象问题

在未用props定义的情况下&#xff0c;slot-scope"{ node, data }"解析data对象只有data含有lable和children才能识别出内容和子节点 当我获取的数据如下&#xff0c;没有lable和children&#xff0c;使用的是name和childList&#xff0c;如下图所示&#xff1a; 注意…

设计必备的矢量插画素材,这几个网站超齐全。

分享几个设计必备的矢量插画、插图素材网站&#xff0c;建议收藏~ 菜鸟图库 https://www.sucai999.com/searchlist/bianpingchahua----all-0-1.html?vNTYxMjky 菜鸟图库是一个素材非常丰富的网站&#xff0c;这里面涵盖了平面、电商、UI、图片、高清背景、插画、视频、音频等…

【新星计划】技术博客写作技巧经验分享

序言 写技术博客需要一定的专业知识和写作技巧&#xff0c;它是一个很好的方式来分享你的经验和知识&#xff0c;同时也是一个展示你的专业能力和建立自己品牌的机会。 以下是一些准备和建议&#xff0c;希望可以帮助你写出有用和有吸引力的技术博客&#xff1a; 写在前面 我报…

使用Elasticsearch进行word,excel,PDF的全文检索 windows实现 超完整(ingest-attachment实现)

首先要明确的一点就是Elasticsearch的版本要和ingest-attachment的版本一致&#xff0c;要不然没办法安装。然后还有一点JAVA版本要在11以上 先说说原理吧&#xff0c;其实就是将文件base64编码&#xff0c;然后再用插件读取文件内容并保存到es中。 1.如果你的版本是JAVA1.8的…

win11系统升级后QT的程序识别套件失败解决

解决方法&#xff1a; QTCreator的配置文件存放位置:C:\Users\%USERNAME%\AppData\Roaming\QtProject。删除这个文件夹下的文件&#xff0c;重启QT就会自动识别kits套件初始化信息等 就是QT我配置的颜色也消失了按照如下步骤重新配置后再次重启QT即可 这个方法导致我QT 上配…

苹果开发者账号续费流程及苹果开发者账号续费流程及下架处理

当开发者的苹果开发者账号即将到期时&#xff0c;可能会面临以下问题&#xff1a;“如何查看开发者账号剩余时间&#xff1f;”和“如何进行续费&#xff1f;”本文将详细解答这些问题。 如何查询账号过期时间&#xff1f; 如果距离开发者账号过期时间不到一个月&#xff0c;您…

KNIME工作流和节点比较功能

KNIME工作流和节点比较功能是一个在 << KNIME 视觉化数据分析 >> 中没有讲到的知识点。 KNIME工作流和节点比较功能在以下几种情况下非常有用&#xff1a; 版本控制&#xff1a;此功能可以跟踪工作流和节点中的更改。如果需要返回到之前的工作流或节点版本&#xf…

Spring + ECharts数据可视化

Apache ECharts是一个基于 JavaScript 的开源可视化图表库&#xff0c;在网页上实现数据的可视化&#xff0c;非常好用&#xff0c;来简单写一个demo&#xff0c;实践一下。 目录 一、成果 二、数据准备 三、具体实现 某年每个学生各科分数的柱状图 后端 前端 后端代码 …

Echarts设置X轴只显示刻度线,不显示X轴轴线

Echarts设置X轴只显示刻度线&#xff0c;不显示X轴轴线&#xff1a; option {xAxis: {......axisLine: {show: false,lineStyle: {color: red,}},......},...... } 效果&#xff1a; 上图中X轴轴线位置的横线&#xff0c;其实是yAxis的splitLine&#xff0c;将splitLine的sh…

(十九)数据编辑——属性编辑②

数据编辑——属性编辑② 使用键盘输入值并不是编辑表中值的唯一方式。在某些情况下&#xff0c;为了设置字段值&#xff0c;可能要对单条记录甚至是所有记录执行数学计算。ArcMap 中的字段计算器可以对所有或所选记录进行简单和高级计算。 此外&#xff0c;还可以基于字段计算…

Vue生态及实践 - vuex

目录 Vuex vuex基础 阶段小结&#xff08;vuex的四种对象&#xff09; vuex响应式原理 vuex.js的实现 index.js Module 局部状态 命名空间 跨模块访问数据 小结 目标 Vuex相关基本概念和使用方式vuex响应式原理过程vuex中如何进行模块式开发 Vue2.0是单向数据流的…

H5学习期间 问题文档(更新中)

目录 一、html与css中让标签 二、css鼠标滑入显示div 三、git报错解决方案 四、ul>li中给h1标签设置行高 一、html与css中让标签<li>在同一行显示 li标签一行显示 效果展示&#xff1a; 代码块&#xff1a; <!DOCTYPE html> <html lang"en"…