【LeetCode】解码方法(动态规划)

chatgpt/2023/9/24 1:34:44

解码方法

      • 题目描述
      • 算法流程
      • 编程代码
      • 代码优化

链接: 解码方法

题目描述

在这里插入图片描述

算法流程

在这里插入图片描述

编程代码

class Solution {
public:int numDecodings(string s) {int n = s.size();vector<int> dp(n);dp[0] = s[0] != '0';if(n == 1) return dp[0];if(s[1] <= '9' && s[1] >= '1') dp[1] += dp[0];int t = (s[0] - '0') * 10 + s[1] - '0';if(t >= 10 && t <= 26) dp[1] += 1;for(int i = 2;i < n;++i){if(s[i] >= '1' && s[i] <= '9'){dp[i] += dp[i-1];}if(((s[i-1] - '0') * 10 +s[i] - '0' >= 10) && ((s[i-1] - '0') * 10 +s[i] - '0'<= 26) ){dp[i] += dp[i-2];}}return dp[n-1];}
};

在这里插入图片描述

代码优化

头部设置虚拟节点,根据题目设置,每个题都不一样,这里我们设置的为1
在这里插入图片描述

class Solution {
public:int numDecodings(string s) {int n = s.size();vector<int> dp(n+1);dp[0] = 1;dp[1] = s[0] != '0';for(int i = 2;i <= n;++i){if(s[i - 1] >= '1' && s[i - 1] <= '9'){dp[i] += dp[i-1];}if(((s[i-2] - '0') * 10 +s[i - 1] - '0' >= 10) && ((s[i-2] - '0') * 10 +s[i-1] - '0'<= 26) ){dp[i] += dp[i-2];}}return dp[n];}
};

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu系统adb开发调试问题记录

Ubuntu系统adb开发调试问题记录 一、adb devices no permissions二、自定义adb server端口三、动态库目录四、USB抓包 一、adb devices no permissions lsusb -t 设备树直观地查看设备的Bus ID和Device Num&#xff0c;lsusb找到对应的PID和VID编辑udev规则 sudo vim /etc/ud…

【计算机网络】应用层协议 -- 安全的HTTPS协议

文章目录 1. 认识HTTPS2. 使用HTTPS加密的必要性3. 常见的加密方式3.1 对称加密3.2 非对称加密3.3 非对称加密对称加密 4. 引入CA证书4.1 CA认证4.2 数据签名4.3 非对称机密对称加密证书认证4.4 常见问题 5. 总结 1. 认识HTTPS HTTPS全称为 Hyper Text Tranfer Protocol over …

Linux NUMA架构(非统一内存访问)

NUMA架构 NUMA Architecture| Non Uniform Memory Access Policy/Model | Numa Node Configuration (CPU Affinity) NUMA架构产生的原因 cpu的高速处理功能和内存存储直接的速度会严重影响cpu的性能。传统的计算机单核架构,cpu通过内存总线(内存访问控制器)直接连接到一…

adobe acrobat安装问题未找到imslib

在C:\Program Files (x86)\Common Files\Adobe\OOBE\PDApp目录下创建P7目录拷贝IMSLib.dll到目录下即可&#xff0c;下载&#xff1a;IMSLib.dll

c++的类与对象(下)

1.初始化列表 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值&#xff0c;构造函数体中的语句只能将其称作为赋初值&#xff0c;而不能称作初始化&#xff0c;因为初始化只能初始化一次(初始化的本质就是只能初始化一次)&am…

向上取整再分析

先看两个简单的数学问题&#xff1a; 一个青蛙跳跃一次的长度为3&#xff0c;现在它垂直于马路方向要跳跃整条马路。假定马路的宽为x长&#xff1f; 问&#xff1a;它最少需要跳跃几次能够完全跳过这条马路&#xff1f; 一个房间可以住6个人&#xff0c;现在来了一群人&#x…

【Docker】Docker部署私有仓库的配置及应用

文章目录 一、Docker-registry 搭建本地私有仓库1. Registry 的概念2. Registry 的部署过程二、Docker-harbor 搭建私有仓库1. 什么是Harbor2. Harbor 的特性3. Harbor的构成4. Harbor 的部署过程4.1 安装 harbor4.2 创建项目并进行上传下载4.3 上传镜像到私有仓库4.4 从私有仓…

Java版本spring cloud + spring boot企业电子招投标系统源代码

&#xfeff;项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&…
推荐文章