网站建设广东/seo网站推广专员招聘

网站建设广东,seo网站推广专员招聘,wordpress resetpass,淄博 网站建设91. 解码方法 题目链接: 91. 解码方法 题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : “1” -> ‘A’ “2” -> ‘B’ … “25” -> ‘Y’ “26” -> ‘Z’ 然而,在解码已编码的消息时,你…

在这里插入图片描述
在这里插入图片描述

91. 解码方法

题目链接: 91. 解码方法
题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码

“1” -> ‘A’
“2” -> ‘B’

“25” -> ‘Y’
“26” -> ‘Z’
然而,在解码已编码的消息时,你意识到有许多不同的方式来解码,因为有些编码被包含在其它编码当中(“2” 和 “5” 与 “25”)。

例如,11106可以映射为:

"AAJF" ,将消息分组为 (1, 1, 10, 6)
"KJF" ,将消息分组为 (11, 10, 6)
消息不能分组为 (1, 11, 06) ,因为 “06” 不是一个合法编码(只有 “6” 是合法的)。
注意,可能存在无法解码的字符串。

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

题目数据保证答案肯定是一个 32 位 的整数。

示例 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 只包含数字,并且可能包含前导零。


💦 前提注意: 这道题的s是一个非空字符串,而不是数组,所以计算时应减去'0'
解题思路:

  1. 状态表示
    dp[i]表示:以i位置为结尾时,所有解码方法的总数
  2. 状态转移方程
    根据最近的一步,划分问题
    在这里插入图片描述
    其中a表示s[i]位置的数,b表示s[i-1]位置的数
    dp[i] = dp[i-1] + dp[i-2]
  3. 初始化
    保证填表时不越界
    0位置结尾时说明此时只解码了一个字符
    在这里插入图片描述
    1位置结尾时说明此时解码了两个字符
    在这里插入图片描述
  4. 填表顺序
    从左向右
  5. 返回值
    dp[n-1]

代码实现:

class Solution {
public:int numDecodings(string s) {//创建dp表//初始化//填表//返回值int n = s.size();vector<int> dp(n);dp[0] = s[0] != '0';//处理边界条件if (n == 1) return dp[0];if (s[0] != '0' && s[1] != '0') dp[1] += 1;//第一个位置能单独解码,并且第二个位置也能单独解码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] != '0') dp[i] += dp[i - 1];//处理单独解码的情况int t = (s[i - 1] - '0') * 10 + s[i] - '0';//第二种情况所对应的数if (t >= 10 && t <= 26) dp[i] += dp[i - 2];}return dp[n - 1];}

细节优化:
处理边界问题以及初始化问题的技巧

  • 我们可以开一个比旧的表多1个的新的dp表,使得旧dp表下标为0的位置,映射到新的dp表下标为1的位置,旧的下标为1的位置映射到新的下标为2的位置…依次类推。
    在这里插入图片描述
  • 这样以来dp[i]就可以表示为以第i个字符为终点的解码方法的个数。所以就只需要初始化第1的字符即可。
  • 这里有个小细节,我们在初始化dp[0]这个虚拟节点时要将它初始化成1,比如只有两个字符我们要判断时 ,第二个字符单独解码时的方法数为1,第二个字符与第一个字符共同解码时的方法总数应该为2dp[2] = dp[1] + dp[0],我们可以将dp[0]给反推出来,所以dp[0]应该初始化为1
    在这里插入图片描述

代码实现:

class Solution {
public:int numDecodings(string s) {//创建dp表//初始化//填表//返回值int n = s.size();//创建dp表vector<int> dp(n+1);dp[0] = 1;dp[1] = s[0] != '0';for(int i = 2;i <= n;i++){if(s[i-1] != '0') dp[i]+=dp[i-1];int b = 10*(s[i-2]-'0') + (s[i -1] - '0');if(b>=10 && b <= 26) dp[i]+=dp[i- 2];}return dp[n];}
};

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

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

相关文章

使用【docker】+【shell】脚本半自动化部署微服务项目

一.前言 以下是一个基于 ‌Docker Shell脚本‌ 的半自动化部署方案&#xff0c;包含镜像构建、容器管理、网络配置和日志监控等核心功能&#xff0c;适用于大多数Web应用或微服务项目。 二‌.目录结构 三.脚本代码实现 1.‌Shell脚本实现 (deploy.sh) #!/bin/bash# 设置颜…

win10搭建opengl环境搭建并测试--输出立方体球体和碗型并在球体上贴图

参照本文档可以完成环境搭建和测试&#xff0c;如果想要快速完成环境的搭建可以获取本人的工程&#xff0c;包括所用到的工具链和测试工程源码获取&#xff08;非免费介意务下载&#xff09;&#xff1a;链接: https://pan.baidu.com/s/1H2ejbT7kLM9ore5MqyomgA 提取码: 8s1b …

CIR-Net:用于 RGB-D 显著性目标检测的跨模态交互与优化(问题)

摘要 问题一&#xff1a;自模态注意力优化单元和跨模态加权优化单元什么意思&#xff1f; 1 优化中间件结构的作用 位置&#xff1a;位于编码器和解码器之间 输入&#xff1a;编码器提取的RGB特征&#xff0c;深度特征以及RGB-D特征。 输出&#xff1a;经过优化的RGB&…

【正点原子K210连载】第七十六章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第七十六章 音频FFT实验 本章将介绍CanMV下FFT的应用&#xff0c;通过将时域采集到的音频数据通过FFT为频域。通过本章的学习&#xff0c;读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节&#xff1a; 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…

火绒终端安全管理系统V2.0——行为管理(软件禁用+违规外联)

火绒终端安全管理系统V2.0&#xff1a;行为管理策略分为软件禁用和违规外联两部分&#xff0c;能够管理终端用户软件的使用&#xff0c;以及终端用户违规连接外部网络的问题。 l 软件禁用 软件禁用策略可以选择软件名单的属性、添加软件名单以及设置发现终端使用禁用软件时的…

FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍

FastJson&#xff1a;JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍 FastJson是阿里巴巴开发的一款专门用于Java开发的包&#xff0c;实现Json对象&#xff0c;JavaBean对&#xff0c;Json字符串之间的转换。 文章目录 FastJson&#xff1a;JSON JSONObje…

DEFI币生态重构加速,XBIT去中心化交易所引领DEX安全新范式

2025年3月18日&#xff0c;全球加密市场在监管与技术共振下迎来结构性变革。去中心化金融&#xff08;DeFi&#xff09;代币DEFI币因跨链流动性协议升级引发社区热议&#xff0c;而币应XBIT去中心化交易所&#xff08;以下简称XBIT&#xff09;凭借其链上透明验证机制、无需下载…

将bin文件烧录到STM32

将bin文件烧录到STM32 CoFlash下载生成hex文件hex2bin使用下载bin到单片机 CoFlash下载 选择需要安装的目录 在Config中可以选择目标芯片的类型 我演示的是 stm32f103c8t6 最小系统板 Adapter&#xff1a;烧录器类型 Max Clock&#xff1a;下载速度 Por&#xff1a;接口类型&am…

Android NDK --- JNI从入门到基础的全面掌握 (上)

引言 先问 jni是什么&#xff1f; jni和ndk 的关系&#xff1f; 答&#xff1a; java调用 C、C 的代码。 两者一个是调用&#xff0c;一个是用c 、c 写 。 这两个问题问出来似乎知道又好像不知道。 正文 jni 概述 定义&#xff1a;java Native Interface 即 java本地接口 …

爬虫 crawler 入门爬取不设防网页 并实现无限增生

基础版本 爬取网页后直接将前端html代码不加处理的输出 # pip3 install requests import requests# request the target URL def crawler():response requests.get("https://www.scrapingcourse.com/ecommerce/")response.raise_for_status()print(response.text)…

HarmonyOs- UIAbility应用上下文

上下文为何物 上下文在计算机科学领域是一个广泛存在的概念。是现代操作系统核心抽象概念之一。其本质是环境信息的结构化封装。 有过开发经验的都知道&#xff0c;当我们在一个系统上进行开发的时候&#xff0c;无论是Android&#xff0c;HarmonyOs&#xff0c;Linux 等等&a…

Redis解决缓存击穿问题——两种方法

目录 引言 解决办法 互斥锁&#xff08;强一致&#xff0c;性能差&#xff09; 逻辑过期&#xff08;高可用&#xff0c;性能优&#xff09; 设计逻辑过期时间 引言 缓存击穿&#xff1a;给某一个key设置了过期时间&#xff0c;当key过期的时候&#xff0c;恰好这个时间点对…

架构思维:软件建模与架构设计的关键要点

文章目录 1. 软件建模的核心概念2. 七种常用UML图及其应用场景类图时序图组件图部署图用例图状态图活动图 3. 软件设计文档的三阶段结构4. 架构设计的关键实践1. 用例图&#xff1a;核心功能模块2. 部署图&#xff1a;架构演进阶段3. 技术挑战与解决方案4. 关键架构图示例5. 架…

numpy学习笔记14:模拟随机游走过程(一次实验)

numpy学习笔记14&#xff1a;模拟随机游走过程(一次实验) 随机游走是一个对象在离散时间步中的随机移动&#xff0c;每次移动的方向和步长由概率决定。在用户提供的代码中&#xff0c;步长数组steps的每个元素是-1或1&#xff0c;代表向左或向右移动一步。np.random.choice的作…

FPGA-DE2115开发板实现流水灯

文章目录 一、安装VScode&#xff0c;在其中下载安装Verilog-HDL/SystemVerilog插件&#xff1b;&#xff08;1&#xff09;安装VScode&#xff08;2&#xff09;安装插件&#xff08;3&#xff09;与Quartus关联 二、不分模块实现流水灯&#xff08;1&#xff09;新建工程&…

JS逆向案例-HIKVISION-视频监控的前端密码加密分析

免责声明 本文仅为技术研究与渗透测试思路分享,旨在帮助安全从业人员更好地理解相关技术原理和防御措施。任何个人或组织不得利用本文内容从事非法活动或攻击他人系统。 如果任何人因违反法律法规或不当使用本文内容而导致任何法律后果,本文作者概不负责。 请务必遵守法律…

碰一碰发视频saas系统技术源头一站式开发文档

碰一碰发视频系统技术源头一站式开发文档 一、引言 在数字化信息传播高速发展的当下&#xff0c;如何让视频分享更便捷、高效&#xff0c;成为商家和开发者们关注的焦点。“碰一碰发视频”系统以其独特的交互方式和强大的功能优势&#xff0c;为视频分享领域带来了革命性变革。…

VSCode + CMake

参考文献&#xff1a; 如何用 GCC, CMake 和 Make 编译C/C代码Windows 上的 Linux 子系统&#xff1a;WSLWSL&#xff1a;桌面 UI 远程连接 RDP 配置 VScode 文章目录 CMake 配置VSCode 配置launch.jsontask.jsonc_cpp_properties.json CMake 配置 编写如下的 CmakeLists.t…

yolov5学习及手势识别实战

目录 一、YOLOv5核心原理 1. 单阶段检测范式 2. 关键技术特性 二、YOLOv5网络架构组成 1. Backbone&#xff1a;CSPDarknet53 2. Neck&#xff1a;PANet&#xff08;Path Aggregation Network&#xff09; 3. Head&#xff1a;检测头 三、YOLOv5网络架构细节 1. 整体架…

VMware-workstation-17.6.3安装教程

1.下载VMware-workstation-17.6.3软件包 2.安装并输入许可码 3.开始使用