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

力扣题目解析--整数反转

题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

  • -231 <= x <= 231 - 1

 代码展示

class Solution {
public:int reverse(int x) {string ret=to_string(x);int length=ret.size();string str="";if(ret[0]=='-'){str+="-";}for(int i=length-1;i>=0;i--){if (ret[i] != '-') {str += ret[i];}}try {int num = std::stoi(str);return num;} catch (const std::out_of_range& e) {// 如果转换失败(溢出),返回0return 0;}}
};

 

逐行解析

  1. 类定义

    class Solution {
    public:

    定义一个名为 Solution 的类,并声明一个公共成员函数 reverse

  2. 函数定义

    int reverse(int x) {

    定义一个公共成员函数 reverse,接受一个整数参数 x 并返回一个整数。

  3. 将整数转换为字符串

    string ret = to_string(x);

    使用 to_string 函数将整数 x 转换为字符串 ret

  4. 获取字符串的长度:

    int length = ret.size();

    获取字符串 ret 的长度,并将其存储在 length 变量中。

  5. 创建一个空字符串来存储反转后的结果

    string str = "";

    初始化一个空字符串 str,用于存储反转后的结果。

  6. 处理负号

    if (ret[0] == '-') {str += "-";
    }

    检查字符串 ret 的第一个字符是否为负号。如果是,将负号添加到结果字符串 str 中。

  7. 从后向前遍历字符串,将字符添加到结果字符串中

    for (int i = length - 1; i >= 0; i--) {if (ret[i] != '-') {str += ret[i];}
    }
    • 使用一个 for 循环从字符串 ret 的最后一个字符开始,向前遍历。
    • 在每次迭代中,检查当前字符是否为负号。如果不是,将其添加到结果字符串 str 中。
  8. 尝试将字符串转换为整数

    try {int num = std::stoi(str);return num;
    } catch (const std::out_of_range& e) {// 如果转换失败(溢出),返回 0return 0;
    }
    • 使用 try 块尝试将结果字符串 str 转换为整数 num
    • 如果转换成功,返回 num
    • 如果转换失败(例如,溢出),捕获 std::out_of_range 异常并返回 0

总结

  • 字符串转换:使用 to_string 将整数转换为字符串。
  • 处理负号:在遍历字符串时,先处理负号,确保负号被正确添加到结果字符串中。
  • 字符串反转:从后向前遍历字符串,将字符添加到结果字符串中。
  • 整数转换:使用 std::stoi 将结果字符串转换为整数,并捕获可能的异常。

这个题相比于回文数。最困难的一点其实在于溢出这个异常处理 

相关文章:

力扣题目解析--整数反转

题目 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&#xff1a…...

净水前置需要安装吗?

业主问净水前置需不需要安装&#xff1f;是必须安装吗&#xff1f;这个问题其实很难回答&#xff0c;如果说非要安装&#xff0c;有可能客户会感觉我们在这上面要挣钱&#xff0c;      有很多业主没有安装家里用水也没有问题&#xff0c;如果说不需要安装&#xff0c;现在…...

在深度学习研究方向有哪些创新点

以下是深度学习研究方向的一些创新点&#xff1a; 一、模型架构创新 Transformer架构及其扩展 自注意力机制 Transformer架构摒弃了传统的卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;中的卷积和循环结构&#xff0c;引入了自注意力机…...

YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息

一、本文介绍 本文记录的是利用轻量级自适应提取模块(LAE)模块优化YOLOv11的目标检测网络模型。LAE (Lightweight Adaptive Extraction) 在减少参数和计算成本的同时,能够提取更丰富语义信息的特征,克服了传统卷积方法难以捕捉全局信息的问题,并能更好地提取ROI特征。本文将…...

工作转型与个人突破提升:如何在社会浪潮中激流勇进

文章目录 一、写在前面二、技术人的迷茫三、做好项目经理其实很难四、从纯技术者转型为管理者面临的事五、最重要的技能【重磅推荐&#xff01;免费简单内网穿透神器&#xff01;支持linuxwindows】 一、写在前面 近期工作变动&#xff0c;虽然说对于开发者而言&#xff0c;工…...

mongodb:增删改查和特殊查询符号手册

前言 最近考虑开发游戏&#xff0c;网上推荐使用非关系数据库mongodb&#xff0c;因此浅尝了一番&#xff0c;并将一些语句和符号记录在这里。 相对于mysql、oracle这些关系型数据库&#xff0c;基于json文档的mongodb在很多地方都与之大不相同&#xff08;可以类比为TCP握手连…...

你的Mac book多久没有清洁键盘屏幕了,Mac清洁好帮手来了

你的Mac book键盘使用时间长了不会打油吗&#xff0c;你的屏幕使用久了不会沾灰吗&#xff0c;那你还不清洁一下 你不清洁的原因&#xff0c;是怕清洁键盘误触发吗&#xff0c;还是怕屏幕擦不干净白擦&#xff0c;还是觉得每次都要睡眠或关机再清洁很麻烦 Cleaner是Mac的清洁…...

ANA基因组数据库(ANAgdb)

ANA进化阶由早期发育的被子植物谱系组成&#xff0c;包括无油樟目&#xff08;Amborellales&#xff09;、睡莲目&#xff08;Nymphaeales&#xff09;和木兰藤目&#xff08;Austrobaileyales&#xff09;&#xff0c;在进化上具有重要地位。 ANA基因组数据库&#xff08;ANA…...

leetcode 704 二分查找

704. 二分查找 已解答 简单 相关标签 相关企业 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nu…...

Vue学习笔记(十一)

一. Promise 1. 异步 异步&#xff1a;则是将耗时很长的A交付的工作交给系统之后&#xff0c;就去继续做B交付的工作&#xff0c;等到系统完成了前面的工作之后&#xff0c;再通过回调或者事件&#xff0c;继续做A剩下的工作。AB工作的完成顺序&#xff0c;和交付他们的时间顺…...

ABAP进阶学习1:动态内表1-通过系统表LVC_T_FCAT类型定义内表

动态内表1-通过系统表LVC_T_FCAT类型定义内表 如果对你有帮助&#xff0c;点个关注收藏吧~ 做BW做久了&#xff0c;突然对abap有了探索欲&#xff0c;开始进一步学习abap了&#xff0c;以后这个系列会逐步更新&#xff0c;欢迎小伙伴点个关注一起学习&#xff0c;我学习的方法…...

【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库

Vispy库 1、你好&#xff0c;Vispy&#xff01;2、安装Vispy&#xff0c;轻松上手3、案例一&#xff1a;绘制简单的2D图形4、案例二&#xff1a;3D图形的绘制5、案例三&#xff1a;大规模数据的可视化6、结语 1、你好&#xff0c;Vispy&#xff01; Vispy是一个用于Python的高…...

为什么 C 语言数组是从 0 开始计数的?

C 语言等大多数编程语言的数组从 0 开始而不从 1 开始&#xff0c;有两个原因&#xff1a; 第一&#xff1a;地址计算更方便 C 语言从 0 开始的话&#xff0c;array[i] 的地址就正好是&#xff1a; (array i) 如果是从 1 开始的话&#xff0c;就是 (array i - 1) 多一次计…...

matlab线性度计算程序

matlab线性度计算程序 环境 matlab2023a ads2020 原理 其中f(v)是曲线&#xff0c;fmax是f(v)的最大值&#xff0c;fmin是f(v)的最小值&#xff0c;vmax为fmax对应v值&#xff0c;vmin为fmin对应v值。 L∆fmax/(fmax-fmin) (1) ∆fmaxmax⁡[f(v)-[fmin-K*(v-vmin)]] (2) K(…...

为什么NMOS管比PMOS管更受欢迎?

NMOS在实际应用中为何比PMOS要更受欢迎。本文将从导电沟道、电子迁移率和器件速度等多个方面来展开讲解。 首先是在性能方面考虑&#xff1a; 与NMOS管驱动能力相同的一个PMOS管&#xff0c;其器件面积可能是NMOS管的2&#xff5e;3倍&#xff0c;然而器件面积会影响导通电阻…...

【论文复现】短期电力负荷

作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 论文复现 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 短期电力负荷 论文发表问题背景一. 基本问题二. 本论文发现的问题 对于论文发现问题的解决方案&#xff1a;复现…...

pytest脚本常用的执行命令

pytest脚本常用的执行命令 一、一般执行的脚本&#xff0c;执行.py文件整个脚本二、执行.py文件脚本中的一个模块三、执行脚本&#xff0c;执行.py文件整个脚本&#xff0c;或则一个模块&#xff0c;查看对应的日志信息3.1.py文件执行allure的脚本3.2去dos框下去执行对应的脚本…...

OpenCv入门

一.OpenCv简介 1 图像的起源 1.1图像是什么&#xff1f; 图&#xff1a;是物体反射或透射光的分布 像&#xff1a;是人的视觉系统所接受的图在人脑中所形版的印象或认识 1.2模拟图像和数字图像 模拟图像&#xff1a;连续存储的图像 数字图像&#xff1a;分级存储的图像 2 数字…...

超详细的flex教程(面试必考)

引言 为什么存在&#xff1f; Flex 布局的出现是为了解决传统 CSS 布局方式&#xff08;如浮动布局、定位布局等&#xff09;在处理复杂布局时的诸多限制和不便。 优势 1. 简化布局 Flex 布局的语法简洁明了&#xff0c;代码更易读。 2. 强大的对齐能力 提供丰富的对齐属…...

C++的输入与输出

一.格式和注意要点 1. #include<iostream>; using namespace std; 标准库定义了4个IO对象&#xff0c;IO(输入输出)&#xff0c;以下&#xff1a; cin是一个istream流对象&#xff0c;现在理解为标准输入即可。cout是一个ostream流对象&#xff0c;理解为标准输出即可。…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...