当前位置: 首页 > 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;理解为标准输出即可。…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...