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&…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...