力扣题目解析--整数反转
题目
给你一个 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;}}
};
逐行解析
-
类定义:
class Solution { public:定义一个名为
Solution的类,并声明一个公共成员函数reverse。 -
函数定义:
int reverse(int x) {定义一个公共成员函数
reverse,接受一个整数参数x并返回一个整数。 -
将整数转换为字符串:
string ret = to_string(x);使用
to_string函数将整数x转换为字符串ret。 -
获取字符串的长度:
int length = ret.size();获取字符串
ret的长度,并将其存储在length变量中。 -
创建一个空字符串来存储反转后的结果:
string str = "";初始化一个空字符串
str,用于存储反转后的结果。 -
处理负号:
if (ret[0] == '-') {str += "-"; }检查字符串
ret的第一个字符是否为负号。如果是,将负号添加到结果字符串str中。 -
从后向前遍历字符串,将字符添加到结果字符串中
for (int i = length - 1; i >= 0; i--) {if (ret[i] != '-') {str += ret[i];} }- 使用一个
for循环从字符串ret的最后一个字符开始,向前遍历。 - 在每次迭代中,检查当前字符是否为负号。如果不是,将其添加到结果字符串
str中。
- 使用一个
-
尝试将字符串转换为整数:
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 ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1:…...
净水前置需要安装吗?
业主问净水前置需不需要安装?是必须安装吗?这个问题其实很难回答,如果说非要安装,有可能客户会感觉我们在这上面要挣钱, 有很多业主没有安装家里用水也没有问题,如果说不需要安装,现在…...
在深度学习研究方向有哪些创新点
以下是深度学习研究方向的一些创新点: 一、模型架构创新 Transformer架构及其扩展 自注意力机制 Transformer架构摒弃了传统的卷积神经网络(CNN)和循环神经网络(RNN)中的卷积和循环结构,引入了自注意力机…...
YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
一、本文介绍 本文记录的是利用轻量级自适应提取模块(LAE)模块优化YOLOv11的目标检测网络模型。LAE (Lightweight Adaptive Extraction) 在减少参数和计算成本的同时,能够提取更丰富语义信息的特征,克服了传统卷积方法难以捕捉全局信息的问题,并能更好地提取ROI特征。本文将…...
工作转型与个人突破提升:如何在社会浪潮中激流勇进
文章目录 一、写在前面二、技术人的迷茫三、做好项目经理其实很难四、从纯技术者转型为管理者面临的事五、最重要的技能【重磅推荐!免费简单内网穿透神器!支持linuxwindows】 一、写在前面 近期工作变动,虽然说对于开发者而言,工…...
mongodb:增删改查和特殊查询符号手册
前言 最近考虑开发游戏,网上推荐使用非关系数据库mongodb,因此浅尝了一番,并将一些语句和符号记录在这里。 相对于mysql、oracle这些关系型数据库,基于json文档的mongodb在很多地方都与之大不相同(可以类比为TCP握手连…...
你的Mac book多久没有清洁键盘屏幕了,Mac清洁好帮手来了
你的Mac book键盘使用时间长了不会打油吗,你的屏幕使用久了不会沾灰吗,那你还不清洁一下 你不清洁的原因,是怕清洁键盘误触发吗,还是怕屏幕擦不干净白擦,还是觉得每次都要睡眠或关机再清洁很麻烦 Cleaner是Mac的清洁…...
ANA基因组数据库(ANAgdb)
ANA进化阶由早期发育的被子植物谱系组成,包括无油樟目(Amborellales)、睡莲目(Nymphaeales)和木兰藤目(Austrobaileyales),在进化上具有重要地位。 ANA基因组数据库(ANA…...
leetcode 704 二分查找
704. 二分查找 已解答 简单 相关标签 相关企业 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nu…...
Vue学习笔记(十一)
一. Promise 1. 异步 异步:则是将耗时很长的A交付的工作交给系统之后,就去继续做B交付的工作,等到系统完成了前面的工作之后,再通过回调或者事件,继续做A剩下的工作。AB工作的完成顺序,和交付他们的时间顺…...
ABAP进阶学习1:动态内表1-通过系统表LVC_T_FCAT类型定义内表
动态内表1-通过系统表LVC_T_FCAT类型定义内表 如果对你有帮助,点个关注收藏吧~ 做BW做久了,突然对abap有了探索欲,开始进一步学习abap了,以后这个系列会逐步更新,欢迎小伙伴点个关注一起学习,我学习的方法…...
【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库
Vispy库 1、你好,Vispy!2、安装Vispy,轻松上手3、案例一:绘制简单的2D图形4、案例二:3D图形的绘制5、案例三:大规模数据的可视化6、结语 1、你好,Vispy! Vispy是一个用于Python的高…...
为什么 C 语言数组是从 0 开始计数的?
C 语言等大多数编程语言的数组从 0 开始而不从 1 开始,有两个原因: 第一:地址计算更方便 C 语言从 0 开始的话,array[i] 的地址就正好是: (array i) 如果是从 1 开始的话,就是 (array i - 1) 多一次计…...
matlab线性度计算程序
matlab线性度计算程序 环境 matlab2023a ads2020 原理 其中f(v)是曲线,fmax是f(v)的最大值,fmin是f(v)的最小值,vmax为fmax对应v值,vmin为fmin对应v值。 L∆fmax/(fmax-fmin) (1) ∆fmaxmax[f(v)-[fmin-K*(v-vmin)]] (2) K(…...
为什么NMOS管比PMOS管更受欢迎?
NMOS在实际应用中为何比PMOS要更受欢迎。本文将从导电沟道、电子迁移率和器件速度等多个方面来展开讲解。 首先是在性能方面考虑: 与NMOS管驱动能力相同的一个PMOS管,其器件面积可能是NMOS管的2~3倍,然而器件面积会影响导通电阻…...
【论文复现】短期电力负荷
作者主页: 七七的个人主页 文章收录专栏: 论文复现 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 短期电力负荷 论文发表问题背景一. 基本问题二. 本论文发现的问题 对于论文发现问题的解决方案:复现…...
pytest脚本常用的执行命令
pytest脚本常用的执行命令 一、一般执行的脚本,执行.py文件整个脚本二、执行.py文件脚本中的一个模块三、执行脚本,执行.py文件整个脚本,或则一个模块,查看对应的日志信息3.1.py文件执行allure的脚本3.2去dos框下去执行对应的脚本…...
OpenCv入门
一.OpenCv简介 1 图像的起源 1.1图像是什么? 图:是物体反射或透射光的分布 像:是人的视觉系统所接受的图在人脑中所形版的印象或认识 1.2模拟图像和数字图像 模拟图像:连续存储的图像 数字图像:分级存储的图像 2 数字…...
超详细的flex教程(面试必考)
引言 为什么存在? Flex 布局的出现是为了解决传统 CSS 布局方式(如浮动布局、定位布局等)在处理复杂布局时的诸多限制和不便。 优势 1. 简化布局 Flex 布局的语法简洁明了,代码更易读。 2. 强大的对齐能力 提供丰富的对齐属…...
C++的输入与输出
一.格式和注意要点 1. #include<iostream>; using namespace std; 标准库定义了4个IO对象,IO(输入输出),以下: cin是一个istream流对象,现在理解为标准输入即可。cout是一个ostream流对象,理解为标准输出即可。…...
用Wireshark抓包实战,手把手教你读懂LwIP里的TCP/IP数据帧(附真实数据解析)
Wireshark与LwIP实战:从抓包数据到协议栈实现的深度解析 当你第一次在Wireshark中看到那些密密麻麻的十六进制数据时,是否感到无从下手?作为嵌入式开发者,理解网络数据包的底层结构不仅是调试网络问题的关键,更是优化L…...
别再写for循环了!用Java8的groupingBy分组统计,5分钟搞定报表数据聚合
告别繁琐循环:Java8 groupingBy让数据聚合优雅如诗 当我们需要从数据库查询结果中生成各类业务报表时,那些重复的for循环是否已经让你感到厌倦?比如按地区统计销售额、按部门计算平均年龄,传统做法往往需要编写大量样板代码。而Ja…...
Web无障碍性自动化检查:CLI工具集成与工程实践指南
1. 项目概述:一个为开发者赋能的Web无障碍性CLI工具 如果你是一名前端开发者、测试工程师,或者正在构建一个需要服务广泛用户群体的Web应用,那么“无障碍性”(Accessibility, 常缩写为 a11y)这个词对你来说…...
开源项目质量门禁实践:从代码规范到安全扫描的自动化检查
1. 项目概述:一个开源项目的“守门人”最近在整理自己的开源项目时,我一直在思考一个问题:如何确保项目仓库的“健康度”?这里的健康度,不仅仅是指代码没有Bug,更是指整个项目的协作流程、代码质量、依赖安…...
Docker 部署 SpringBoot 项目超详细教程
Docker 部署 SpringBoot 项目超详细教程一篇适合新手的 Docker 部署 SpringBoot 实战教程,包含: Docker 安装镜像加速SpringBoot 打包Dockerfile 编写构建镜像容器部署日志查看防火墙开放常见问题解决 图文并茂,保姆级教学。本文假设你已拥有…...
AI赋能的两种逻辑企业如何选?:从「AI+行业」
在人工智能全面重构产业格局的今天,用不用 AI 已经不是问题,怎么用 AI 才是生死关键。同样是布局 AI,有的企业只实现小幅增效,有的企业却直接颠覆行业、重塑价值链。 核心差距,就在于选择了 「AI 行业」的加法逻辑&am…...
Cursor编辑器光标主题自定义指南:从原理到实践
1. 项目概述:一个为开发者准备的“光标”资源宝库如果你是一名开发者,或者对提升代码编辑器的视觉体验和操作效率有追求,那么你很可能听说过或正在使用 Cursor 这款新兴的代码编辑器。它凭借深度集成的 AI 能力和现代化的设计,吸引…...
可穿戴电子入门:基于CircuitPython与3D打印的LED发光皇冠制作全解
1. 项目概述与核心思路如果你和我一样,对把电子设备“穿”在身上这件事着迷,那么可穿戴电子项目绝对能带来无穷的乐趣。它不仅仅是把一块电路板缝进衣服里那么简单,而是将微控制器、灯光、传感器这些冰冷的电子元件,与柔软的织物、…...
子网掩码实战:从原理到网络规划的深度解析
1. 子网掩码的核心原理 第一次接触子网掩码时,我也被那一串数字搞得晕头转向。直到有次公司网络改造,亲眼看到老工程师用子网划分解决了IP地址不足的问题,才真正明白它的价值。简单来说,子网掩码就像邮局的邮政编码系统 - 它告诉网…...
AlphaAvatar:从单目视频重建可驱动3D数字人的混合表示框架
1. 项目概述:从“数字人”到“阿尔法化身”的进化最近在数字人、虚拟形象生成这个圈子里,AlphaAvatar这个名字开始被频繁提及。它不是一个简单的换脸工具,也不是一个预设的3D模型库,而是一个旨在从单目视频中,高质量、…...
