Java中等题-解码方法(力扣)
一条包含字母 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" 并不等价)。
这道题我没有思路,官方思路如下:
动态规划:
用一个f[i]数组表示以下标i结尾的解码方法数量,
如果第一个就是0,那return 0即可
否则,初始化f[0]=1(表示有一种解码方法)
然后遍历,如果自己本身不为0,那f[i]+=f[i-1](可以累加)
如果自己为0,且前一个数不为0,那判断自己和前一个数组合起来,如果值在10~26之内就合法
f[i]+=f[i-2](如果i-2存在的话)
class Solution {public int numDecodings(String s) {int n=s.length();int f[]=new int[n];if(s.charAt(0)=='0'){return 0;}f[0]=1;for(int i=1;i<n;i++){if(s.charAt(i)!='0'){f[i]+=f[i-1];}if(i-2>=0&&(s.charAt(i-1)-'0')*10+(s.charAt(i)-'0')<=26&&s.charAt(i-1)!='0'){f[i]+=f[i-2];}if(i-2<0&&(s.charAt(i-1)-'0')*10+(s.charAt(i)-'0')<=26){f[i]+=1;}}return f[n-1];}
}
相关文章:
Java中等题-解码方法(力扣)
一条包含字母 A-Z 的消息通过以下映射进行了 编码 : "1" -> A "2" -> B ... "25" -> Y "26" -> Z 然而,在 解码 已编码的消息时,你意识到有许多不同的方式来解码,因为有些…...
【Git】git 从入门到实战系列(二)—— Git 介绍以及安装方法
文章目录 一、前言二、git 是什么三、版本控制系统是什么四、本地 vs 集中式 vs 分布式本地版本控制系统集中式版本控制系统分布式版本控制系统 五、安装 git 一、前言 本系列上一篇文章【Git】git 从入门到实战系列(一)—— Git 的诞生,Lin…...
【QT 5 QT 6 构建工具qmake-cmake-和-软件编译器MSVCxxxvs MinGWxxx说明】
【QT 5报错:/xxx/: error: ‘class Ui::frmMain’ has no member named ‘xxx’-和-软件编译器MSVCxxxvs MinGWxxx说明】 1、前言2 、qt 中 Qmake CMake 和 QBS1-qmake2-Cmake3-QBS4-官网一些说法5-各自特点 3、软件编译套件1-Desktop Qt 6.7.2 llvm-mingw 64-bit2-…...
SD卡参数错误:深度解析与数之寻软件恢复实战
一、SD卡参数错误:数据与设备的隐形杀手 在数字化时代,SD卡作为便携存储设备,广泛应用于相机、手机、无人机及各类电子设备中,承载着人们珍贵的照片、视频、文档等重要数据。然而,SD卡在使用过程中,有时会…...
深入理解和应用RabbitMQ的Work Queues模型
文章目录 1. 场景模拟2. 消息发送3. 消息接收4. 测试5. 能者多劳6. 总结 当你在处理消息时,可能会遇到这样的问题:消息的生产速度远远大于消费速度,导致消息堆积。这时候,Work Queues(工作队列)模型就能派上…...
嵌入式面试八股文(三)·野指针产生原因和解决方法、指针函数和函数指针的区别
目录 1. 野指针产生原因和解决方法 1.1 产生的原因 1.1.1 指针未能初始化 1.1.2 指针指向的内存被释放 1.1.3 指针指向的对象被重复释放 1.2 解决方法 1.2.1 初始化指针 1.2.2 指针空置 1.2.3 避免悬挂指针 2. 指针函数和函数指针的区别 2.1 定义不同 2…...
OpenCV 中 CV_8UC1,CV_32FC3,CV_32S等参数的含义
在OpenCV中,创建图像时需要指定图像的类型,这些类型通常通过常量来表示,例如 CV_8UC1、CV_32FC3、CV_32S 等。这些常量定义了图像的数据类型和通道数,具体含义如下: CV_8UC1: CV_8U 表示每个像素由一个8位无…...
v 3 + vite + ts 自适应布局(postcss-pxtorem)
1、 当pc端、移动端H5等项目中,需要根据当前浏览器窗口或屏幕尺寸,来自适应的改变页面内元素尺寸时,就可以借助下述插件和相关配置来实现。 2、适用范围:vue3 vite ts 步骤一:相关依赖下载下载相关依赖 npm inst…...
(MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
文章简介 承接上一篇笔记,该份笔记是笔者深思熟虑后根据实战应用所总结出来的精华内容,该文章内容主要包括配置avc权限的使用场景以及其上下环节所需的准备。 使用场景 1.底层驱动有无配置好相应的串口 2.开启相应的selinux avc 权限 3.在framework层配置相应的 (config…...
Linux安全与高级应用(六)Linux Shell脚本编程的高级应用:条件测试与if语句的妙用
文章目录 Linux Shell脚本编程的高级应用:条件测试与if语句的妙用一、条件测试操作详解1. 字符串比较2. 整数比较3. 文件测试4. 逻辑测试 二、if语句的结构与应用1. 单分支结构2. 双分支结构3. 多分支结构 三、实际应用案例1. 需求描述2. 实现思路3. 代码实现4. 设置…...
升级MacOS(Mojave)后使用git问题
将MacOS升级到Mojave版本后,使用git工具时,出现如下错误提示: guochongxindeMacBook-Pro:study guochongxin$ git status . xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Librar…...
基于PFC和ECN搭建无损RoCE网络的工作流程分析
无损RoCE网络概念 RDMA(Remote Direct Memory Access,远程直接内存访问)是一种为了解决网络传输中服务器端数据处理延迟而产生的技术。RDMA 将用户应用中的数据直接传入服务器的存储区,通过网络将数据从一个系统快速传输到远程系…...
射频功率放大器调测简略
射频功率放大器除了在设计时的难度外,其次就是调测阶段,设计时仿真可以通过不断更改仿真参数来达到理想状态,更关键的是不用提心吊胆的把烧器件,而处于调测阶段则很容易出现烧坏器件的情况,特别是功率大的射频功率放大…...
Linux使用docker搭建Redis 哨兵模式
1. Redis Sentinel 简介 Redis Sentinel 是 Redis 高可用解决方案的一部分。它提供了监控、通知和自动故障转移功能,确保 Redis 集群在主节点发生故障时仍然可以继续工作。以下是 Redis Sentinel 的主要功能和作用:监控: Sentinel 会不断检查…...
springboot给类进行赋初值的四种方式
目录 1. 使用Value和ConfigurationProperties2. 使用PropertySource创建Person.java写一个测试类 3. 使用ImportResourceStudent类创建beans.xml在主类中引入测试 其他心得 1. 使用Value和ConfigurationProperties 这里不加赘述了,前面我也发过,这里就放…...
Day32 | 1049. 最后一块石头的重量 II 494. 目标和 474.一和零
语言 Java 1049. 最后一块石头的重量 II 最后一块石头的重量 II 题目 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 …...
linux 查看一个端口是否被占用
1 linux命令 要在Linux中查看一个端口是否被占用,可以按照以下步骤进行操作: 打开终端(Terminal)。 运行以下命令来列出系统上所有正在监听的端口及其对应的进程: sudo netstat -tuln | grep LISTEN这将显示所有正在…...
【Git】5. 配置 Git
配置.gitignore – 忽略特殊⽂件 在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让 Git 知道呢? 在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的…...
C语言:文件处理
文件处理 一、文件的类型(一)文本文件和二进制文件 (二)程序文件和数据文件数据文件按照二进制储存 二、文件的打开和关闭(一)文件指针(二)文件的打开和关闭1、fopen2、fclose &…...
SpringBoot MybatisPlus selectOne的坑
目录 一、问题 二、问题解决 三、其他方法 一、问题 selectOne在查询多条数据时会报错,查询语句并不会加 limit 1。 One record is expected, but the query result is multiple records。 二、问题解决 在QueryWrapper上添加如下: QueryWrapper&…...
Claude Code智能体与CasRel模型协作:自动化数据标注流水线
Claude Code智能体与CasRel模型协作:自动化数据标注流水线 1. 引言 做关系抽取项目,最头疼的是什么?十有八九的工程师会告诉你:是数据标注。传统的人工标注,不仅耗时费力,成本高昂,而且面对复…...
【技术干货】2026 大模型战局前瞻:从 OpenAI SPUD 到 Gemma 4,本地与云端的架构选择与实战接入
摘要 围绕 OpenAI SPUD(GPT‑5.5/6 级别)、GPC Image 2、DeepSeek V4、QuDeep 3.6 与 Google Gemma 4,本篇从「模型能力演进 → 推理/训练基础设施 → 本地/云端部署架构 → 统一 API 实战」四个维度梳理大模型技术趋势,并给出基于…...
BurpSuite为什么要配置证书
BurpSuite配置证书,核心是破解HTTPS加密、正常中间人抓包。不配置证书,浏览器报不安全、连不上;配置了证书,解密HTTPS、能看明文、能改包。为什么必须配置证书1.HTTPS是加密的浏览器和服务器之间的通信用TLS/SSL加密,防…...
幻境·流金惊艳生成:从织梦令到流金光影汇聚的全过程效果对比
幻境流金惊艳生成:从织梦令到流金光影汇聚的全过程效果对比 1. 开篇:当技术遇见艺术的美妙邂逅 想象一下,你脑海中浮现出一个绝美的画面:赛博朋克都市中霓虹流淌的街道,或是水墨意境中的玄金山水。传统方式需要数小时…...
别再只调RGB了!用HSV给你的WS2812灯带调出更自然的彩虹渐变(附Arduino代码)
别再只调RGB了!用HSV给你的WS2812灯带调出更自然的彩虹渐变(附Arduino代码) 每次看到WS2812灯带突然跳变的颜色,总觉得少了点优雅。RGB数值的直接操控就像用扳手调钢琴——理论上可行,但实际操作起来总差那么点意思。上…...
爱毕业aibye推出六大专业学术平台,集成智能改写与高效写作功能,轻松提升科研效率。
工具名称 核心功能 特色优势 Aibiye 论文生成降AI率 全学科覆盖、仿写优化、自动图表生成 Aicheck AI检测文献综述辅助 精准查新、3分钟高效成文 GPT学术版 润色/翻译/代码解释 多模型协同、PDF深度解析 摆平论文 大纲生成降重改写 三步出稿、本硕博通用 QuillB…...
形式验证实战:5个降低状态空间复杂度的黑科技(附内存控制器案例)
形式验证实战:5个降低状态空间复杂度的黑科技(附内存控制器案例) 在芯片设计领域,形式验证(Formal Verification, FV)正逐渐成为确保设计正确性的重要手段。然而,随着设计复杂度的提升ÿ…...
2025届必备的六大降重复率助手横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 纵然人工智能辅助毕业论文写作现如今已然成为一种学术方面的新常态,可是却需要去…...
电子工程师眼中的城市电路板:无人机航拍引发的职业思考
1. 电子工程师的强迫症与无人机视角的冲突作为一名从业十年的电子工程师,我完全理解小舒所说的那种"焊盘上的电阻、电容不能歪"的强迫症。这种职业习惯已经深深烙印在我们的工作方式中 - 从PCB布局到元件焊接,从线缆走线到机箱布线,…...
STM32远程固件升级(FOTA)实现方案详解
1. STM32远程升级方案概述在嵌入式设备开发中,远程固件升级(FOTA)是一项至关重要的功能。当设备部署在难以物理接触的场所时,通过无线或有线方式实现固件更新可以大幅降低维护成本。STM32系列单片机凭借其灵活的存储布局和丰富的通信接口,非常…...
