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

【LeetCode】剑指 Offer(23)

目录 

题目:剑指 Offer 46. 把数字翻译成字符串 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 46. 把数字翻译成字符串 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int translateNum(int num) {}
};

解题思路:

这道题我的的思路是使用动态规划,

并且,这道题更像是一个斐波那契数列的变式,

具体思路如下:

题目给我们传的是一个数字,

为了方便的解题,我们将数字转换成字符串

(不然到时候要用的时候还得取模之类的一系列操作,比较麻烦和难理解)

然后我们创建一个用来进行动态规划的数组dp,

dp[0] = 1,dp[1] = 1;

遍历字符串,

如果上一个字符与当前字符组成的数字 >9 且 <26

当前数字就会有两种情况:

1. 当前数字独立于前面数字,那翻译的方法就有dp[i - 1]个;

2. 当前数字与前一个数字组合,那翻译方法就有dp[i - 2]个;

所以dp[i] 就是dp[i - 1] + dp[i - 2]。

如果上一个字符与当前字符组成的数字 <9 或者 >26

只有当前数字独立于前面数字一种情况,那dp[i] == dp[i - 1]。

例:

然后遍历字符串:

继续遍历:

继续走:

 因为:上一个字符与当前字符组成的数字 <9 或者 >26

这就是大致的思路,

接下来看代码: 

代码:

class Solution {
public:int translateNum(int num) {//将数字转换为字符串string s = to_string(num);//建立一个动态规划的数组vector<int> dp(s.size() + 1);dp[0] = 1;dp[1] = 1;//遍历字符串for(int i = 2; i < dp.size(); i++){//如果上一个字符与当前字符组成的数字 >9 && <26if((s[i - 2] -'0') * 10 + (s[i - 1] - '0') < 26 && (s[i - 2] -'0') * 10 + (s[i - 1] - '0') > 9){//1.当前数字独立于前面数字,那翻译的方法就有dp[i - 1]个//2.当前数字与前一个数字组合,那翻译方法就有dp[i - 2]个//所以dp[i] 就是dp[i - 1] + dp[i - 2]dp[i] = dp[i - 2] + dp[i - 1];}else//如果上一个字符与当前字符组成的数字 <9 或者 >26{//只有当前数字独立于前面数字一种情况,那dp[i] == dp[i - 1]dp[i] = dp[i - 1];}}//最后返回翻译方法的总和即可return dp.back();}
};

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

相关文章:

【LeetCode】剑指 Offer(23)

目录 题目&#xff1a;剑指 Offer 46. 把数字翻译成字符串 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 46. 把…...

[免费专栏] 汽车威胁狩猎之不应该相信的几个威胁狩猎误区

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 汽车威胁狩猎专栏长期更新&#xff0c;本篇最新内容请前往&#xff1a; …...

LinuxFTP文件传输服务和DNS域名解析服务

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

二叉搜索树原理及底层实现

二叉搜索树BST 概念 二叉搜索树又称二叉排序树&#xff0c;它可以是一棵空树&#xff0c;或者是具有以下性质的二叉树&#xff1a;若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值&#xff1b;若它的右子树不为空&#xff0c;则右子树上所有节点的值都…...

python自动化办公(一)

本文代码参考其他教程书籍实现。 文章目录文件读写open函数读取文本文件写入文本文件文件和目录操作使用os库使用shutil库文件读写 open函数 open函数有8个参数&#xff0c;常用前4个&#xff0c;除了file参数外&#xff0c;其他参数都有默认值。file指定了要打开的文件名称&a…...

LeetCode - 198 打家劫舍

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装…...

简单粗暴的分布式定时任务解决方案

分布式定时任务1.为什么需要定时任务&#xff1f;2.数据库实现分布式定时任务3.基于redis实现1.为什么需要定时任务&#xff1f; 因为有时候我们需要定时的执行一些操作&#xff0c;比如业务中产生的一些临时文件&#xff0c;临时文件不能立即删除&#xff0c;因为不清楚用户是…...

蓝桥杯第五天刷题

第一题&#xff1a;数的分解题目描述本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。把 2019 分解成 3 个各不相同的正整数之和&#xff0c;并且要求每个正整数都不包含数字 2和 4&#xff0c;一共有多少种不同的分解方法&…...

Java数组的定义和使用(万字详解)

目录 ​编辑 一. 数组的基本概念 1、什么是数组 2、数组的创建及初始化 1、数组的创建 2、数组的初始化 3、数组的使用 &#xff08;1&#xff09;数组中元素访问 &#xff08;3&#xff09;遍历数组 二、数组是引用类型 1、初始JVM的内存分布 2、基本类型变量与引用类…...

【SpringBoot】自定义Starter

&#x1f6a9;本文已收录至专栏&#xff1a;Spring家族学习之旅 &#x1f44d;希望您能有所收获 一.概述 在使用SpringBoot进行开发的时候&#xff0c;我们发现使用很多技术都是直接导入对应的starter&#xff0c;然后就实现了springboot整合对应技术&#xff0c;再加上一些简…...

【C陷阱与缺陷】----语法陷阱

&#x1f4af;&#x1f4af;&#x1f4af; 要理解一个C程序&#xff0c;必须理解这些程序是如何组成声明&#xff0c;表达式&#xff0c;语句的。虽然现在对C的语法定义很完善&#xff0c;几乎无懈可击&#xff0c;大门有时这些定义与人们的直觉相悖&#xff0c;或容易引起混淆…...

虹科分享| 关于TrueNAS十问十答

上一篇文章我们向您介绍了虹科新品HK-TrueNAS企业存储&#xff0c;很多小伙伴会疑问到底什么是NAS存储&#xff0c;之前常用的磁盘、磁带属于什么存储架构&#xff0c;NAS存储好在哪里&#xff0c;什么时候使用NAS&#xff1f;今天我们整理了关于TrueNAS的十问十答&#xff0c;…...

Https 笔记

HTTP TLS TLS 的前身是 SSL 非对称加密的核心&#xff1a; 两个密钥&#xff08;公私&#xff09; https 需要第三方CA&#xff08;证书授权中心&#xff09;申请SSL证书以确定其真实性 证书种包含了特定的公钥和私钥 密钥交换 自己将私钥上锁后发给对方对方也上锁 在还回来…...

【Python+requests+unittest+excel】实现接口自动化测试框架

一、框架结构&#xff1a; 工程目录 二、Case文件设计 三、基础包 base 3.1 封装get/post请求&#xff08;runmethon.py&#xff09; 1 import requests2 import json3 class RunMethod:4 def post_main(self,url,data,headerNone):5 res None6 if heade…...

MySQL终端的使用及其数据类型的使用

什么是数据库&#xff1f;数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建&#xff0c;访问&#xff0c;管理&#xff0c;搜索和复制所保存的数据。我们也可以将数据存储在文件中&#xff0c…...

长视频终局:一场考验资金储备的消耗战

赢者通吃&#xff0c;似乎已成为各行各业的常识&#xff0c;但事实真的是这样吗&#xff1f;20世纪70年代&#xff0c;石油价格高涨&#xff0c;在墨西哥湾油田拍卖中高价拍得油田的企业&#xff0c;要么亏损&#xff0c;要么收入低于预期&#xff0c;但仍然有无数企业在高价竞…...

javaEE初阶 — CSS 常用的属性

文章目录CSS 常用的属性1 字体属性1.1 设置字体家族 font-family1.2 设置字体大小 font-size1.3 设置字体粗细 font-weight1.4 文字倾斜 font-style2 文本属性2.1 文本颜色2.2 文本对齐2.3 文本装饰2.4 文本缩进2.5 行高3 背景属性3.1 背景颜色3.2 背景图片3.3 背景位置3.4 背景…...

【面试题】如何取消 script 标签发出的请求

大厂面试题分享 面试题库前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库问题之前在业务上有这样一个场景&#xff0c;通过 script 标签动态引入了一个外部资源&#xff0c;具体方式是这样的const script document.…...

蓝桥杯嵌入式(G4系列):RTC时钟

前言&#xff1a; 关于RTC时钟的HAL库配置我也是第一次&#xff0c;之前都是用库函数的写法&#xff0c;这里写下这篇博客来记录一下自己的学习过程。 STM32Cubemx配置&#xff1a; 首先点击左侧的Timers的RTC&#xff0c;勾选以下选项 进入时钟树配置 进入时间设置&#xff0…...

Linux——进程间通信1

目录 进程间通信目的 进程间通信标准 管道 匿名管道 管道实现进程间通信 管道的特点 进程池 ProcessPool.cc Task.hpp 习题 进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件…...

Photoshop无法识别Midjourney v6生成的.exr/.hdr文件?独家逆向工程解析其自定义EXIF标签结构,并提供开源Python元数据修复工具包(GitHub Star超2.1k)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Photoshop无法识别Midjourney v6生成的.exr/.hdr文件&#xff1f;独家逆向工程解析其自定义EXIF标签结构&#xff0c;并提供开源Python元数据修复工具包&#xff08;GitHub Star超2.1k&#xff09; Mid…...

04 - 运行 rocrtst 第一个测试

本文档帮助你成功运行 rocrtst 的第一个测试&#xff0c;并掌握各种运行方式。 1. 运行前检查清单 在运行测试之前&#xff0c;确认以下条件&#xff1a; # ✅ 1. rocrtst64 已构建并安装 ls $ROCM_PREFIX/bin/rocrtst64# ✅ 2. GPU kernel 已编译&#xff08;检查你的 GPU …...

STM32CubeMX LL库定时器中断避坑指南:为什么你的中断不触发?

STM32CubeMX LL库定时器中断避坑指南&#xff1a;为什么你的中断不触发&#xff1f; 在嵌入式开发中&#xff0c;定时器中断是最基础也最常用的功能之一。然而&#xff0c;当开发者从标准库转向LL库&#xff08;Low Layer Library&#xff09;时&#xff0c;往往会遇到各种&quo…...

青岛银行员工才艺大赛|iPad评委打分系统案例

在青岛银行首届员工才艺大赛现场&#xff0c;熹乐互动的iPad评委打分系统为这场精彩赛事注入了高效、透明的科技体验。评委们只需通过iPad端操作&#xff0c;即可快速为节目打分&#xff0c;系统实时同步数据至大屏&#xff0c;自动完成分数统计、加权计算与排名更新。无需人工…...

工程人福音!一键提取图纸文字,告别手动打字

建筑工程施工管理工作中&#xff0c;涉及大量文书资料编制&#xff0c;涵盖施工组织设计、专项施工方案、各类报告文件、招投标技术标撰写、项目概况说明、工程量清单项目特征描述等诸多文字内容。此类资料编辑工作量大、耗时费力&#xff0c;人工录入不仅效率低下&#xff0c;…...

3403开源:黄大年茶思屋榜文保姆级全落地解法「34期 3题」融合算力跨层语义感知协同调度体系双路径工程落地全解

华夏之光永存・开源:黄大年茶思屋榜文保姆级全落地解法「34期 3题」 小标题:融合算力跨层语义感知协同调度体系双路径工程落地全解 一、摘要 融合算力跨层语义感知协同调度领域,当下异构算力分立管控、静态资源划分、单任务独占调度等传统模式已触及全球工程性能绝对天花…...

3个步骤解决经典游戏无法联网:IPXWrapper终极兼容方案

3个步骤解决经典游戏无法联网&#xff1a;IPXWrapper终极兼容方案 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 你是否曾在Windows 10或11系统上试图重温《红色警戒2》、《帝国时代》或《星际争霸》的局域网对战&#xff0c;却…...

淘宝淘金币自动化脚本终极指南:每天节省20分钟的完整解决方案

淘宝淘金币自动化脚本终极指南&#xff1a;每天节省20分钟的完整解决方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …...

3分钟极速指南:网易云音乐无损FLAC批量下载神器

3分钟极速指南&#xff1a;网易云音乐无损FLAC批量下载神器 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 还在为寻找高品质音乐资源而烦恼吗&#x…...

Obsidian Quiz Generator:用AI从笔记生成交互测验,打造学习闭环

1. 项目概述&#xff1a;用AI将笔记变成互动测验 如果你和我一样&#xff0c;是个重度Obsidian用户&#xff0c;同时又经常需要备考、复习或者制作教学材料&#xff0c;那你肯定体会过那种痛苦&#xff1a;面对几十上百页的笔记&#xff0c;想要生成一些高质量的练习题来检验学…...