当前位置: 首页 > news >正文

LeetCode 第91题:解码方法

题目描述:

一条包含字母A-Z的消息通过以下映射进行了编码

1-A

......

26-Z

要特别注意,11106可以映射为AAJF或KJF

06不是一个合法编码

给你一个只含数字的非空字符串s,请计算并返回解码方法的总数。如果没有合法的方法解码整个字符串,返回0

示例1:

输入:s = "12"
输出:2
解释:它可以解码为 "AB"(1 2)或者 "L"(12)。

示例2:

输入:s = "226"
输出:3
解释:它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。

示例3:

输入:s = "06"
输出:0
解释:"06" 无法映射到 "F" ,因为存在前导零("6" 和 "06" 并不等价)。

提示:

1 <= s.length <= 100
s 只包含数字,并且可能包含前导零。

解题方法:

动态规划,分为一个字符和两个字符两种情况

int numDecodings(char* s) {int n = strlen(s);int f[n+1];memset(f,0,sizeof(f));//f数组全部设置为0f[0]=1;for(int i=1;i<=n;i++){//一种字符情况if(s[i-1]!='0')  f[i] = f[i] + f[i-1];//两种字符情况if(i>1 && s[i-2]!='0' && (s[i-2]-'0')*10+s[i-1]-'0'<=26)//以226为例好理解点f[i] = f[i]+f[i-2];}return f[n];
}
http://www.dtcms.com/a/267544.html

相关文章:

  • 二叉树题解——二叉搜索树中第 K 小的元素【LeetCode】使用外部变量ans记录答案
  • C++ 网络编程(15) 利用asio协程搭建异步服务器
  • 【大模型】到底什么是Function Calling和MCP,以及和ReAct推理的关系是什么?
  • [学习] 深入理解 POSIX
  • 面试150 最长连续序列
  • Node.js worker_threads深入讲解教程
  • 【LeetCode102.二叉树的层序遍历】vs.【LeetCode103.二叉树的锯齿形层序遍历】
  • Apollo自动驾驶系统中Planning模块的架构设计与核心逻辑解析(流程伪代码示例)
  • 45-使用scale实现图形缩放
  • 探索 .NET 桌面开发:WinForms、WPF、.NET MAUI 和 Avalonia 的全面对比(截至2025年7月)
  • 炼丹炉 TD-trainer 的安装与部署,LoRA、dreambooth
  • <三>Sping-AI alibaba 文生图
  • Cursor/VScode ,点击运行按钮,就打开新的终端,如何设置为在当前终端运行文件而不是重新打开终端----一招搞定篇
  • 数字孪生技术引领UI前端设计新潮流:虚拟现实的深度集成
  • 在sf=0.1时测试fireducks、duckdb、polars的tpch
  • OpenLayers 设置线段样式
  • 深入学习c++之---AVL树
  • 支持零样本和少样本的文本到语音48k star的配音工具:GPT-SoVITS-WebUI
  • 完成ssl不安全警告
  • DQL-6-分页查询
  • Redis的编译安装
  • PVE DDNS IPV6
  • 超详细yolo8/11-detect目标检测全流程概述:配置环境、数据标注、训练、验证/预测、onnx部署(c++/python)详解
  • Altium Designer使用教程 第一章(Altium Designer工程与窗口)
  • ESXi 8.0 SATA硬盘直通
  • python-字符串
  • 量化可复用的UI评审标准(试验稿)
  • OPENPPP2 VDNS 核心域模块深度解析
  • 电源管理芯片(PMIC) 和 电池管理芯片(BMIC)又是什么?ING
  • webpack+vite前端构建工具 -11实战中的配置技巧