LeetCode:Reverse Integer - 翻转数字

1、题目名称

Reverse Integer(翻转数字)

2、题目地址

https://leetcode.com/problems/reverse-integer/

3、题目内容

英文:Reverse digits of an integer.

中文:翻转一个正整数的各位,形成一个新数字

例如:x = 123, return 321;x = -123, return -321

4、一个有瑕疵的方法(不能AC)

一个比较好想到的方法,是先将输入的数字转换为字符串,再将字符串翻转后转换为数字。这个方法对于一般的数字来说是可行的,它的缺点是面对一些非常大的整数时,如果翻转会造成溢出,不能进行判断。Java代码如下:

/**
 * 功能说明:LeetCode 7 - Reverse Integer
 * 开发人员:Tsybius
 * 开发时间:2015年9月20日
 */
public class Solution {
    
    /**
     * 反转数字
     * @param x 被反转数字
     * @return 反转后数字
     */
    public int reverse(int x) {
        
        if (x == 0) {
            return 0;
        }

        String str = String.valueOf(x >= 0 ? x : -x);
        str = (new StringBuilder(str)).reverse().toString(); 
        
        if (x > 0) {
            return Integer.parseInt(str); 
        } else {
            return Integer.parseInt("-" + str);
        }
    }
}

5、解题方法

一个比较保险的方法,就是计算的时候采用long类型,计算完毕后再看是否超过了整型的上界或下界,超过了则返回整型的最大值或最小值,否则直接强制转换为整型后返回即可。Java代码如下:

/**
 * 功能说明:LeetCode 7 - Reverse Integer
 * 开发人员:Tsybius
 * 开发时间:2015年9月20日
 */
public class Solution {
    
    /**
     * 反转数字
     * @param x 被反转数字
     * @return 反转后数字
     */
    public int reverse(int x) {
        
        if (x == 0) {
            return 0;
        }

        //先转换为正整数计算
        boolean sign = x > 0 ? true : false;
        x = sign ? x : x * (-1);
        
        //使用长整型类型计算结果,防止溢出错误
        long result = 0L;
        while (true)
        {
            result += x % 10;
            x /= 10;
            
            if (x != 0) {
                result *= 10;
            } else {
                break;
            }
        }
        
        //得出结果,比较是否超出整型最大/最小值
        result = sign ? result : result * (-1);
        if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
            return 0;
        } else {
            return (int)result;
        }
    }
}

这个方法的代码还可以被进一步精简,下面这段代码减少了代码行数:

/**
 * 功能说明:LeetCode 7 - Reverse Integer
 * 开发人员:Tsybius
 * 开发时间:2015年9月20日
 */
public class Solution {
    
    /**
     * 反转数字
     * @param x 被反转数字
     * @return 反转后数字
     */
    public int reverse(int x) {
        
        long result = 0;

        while (x!=0) {
            result = result * 10 + x % 10;
            x /= 10;
        }
        
        return (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) ? 0 : (int)result;
    }
}

END

转载于:https://my.oschina.net/Tsybius2014/blog/508900

STM32G474+Simulink+HIL硬件在环仿真 硬件:STM32G474RET6(官方的NUCLEO板)软件:STM32Cube_FW_G4 V1.6.1芯片包;KeilMATLAB 2023B(本文已成功)STM32嵌入式支持包。 阅读详情

相关推荐

Overleaf-Latex-Elsevier-图、表、参考文献标题及引用、伪代码写法(绝对详细直观且易懂)

overleaf爱思唯尔模板踩过的一些坑以及解决办法

2403_87584552的博客 5851

【leetcode】整型翻转问题integer reverse

这道题目具体来说就是将一个整数翻转,如果超过32位的上线,输出0 ,否则输出其翻转数。主要注意的就是翻转后超上线要输出0 和负数的问题。 我比较笨,就直接想到了转化成字符串来做。不过这样空间复杂度就很大了。后来优化了一下。还是要19行代码。编译通过的时间是42ms。 public int reverse(int x) { String s = String.valueOf(x

ES丶舞弄的博客 429

新手避坑指南:用Silvaco Atlas搞定GaN HEMT电热仿真的完整流程(附代码解读)

本文详细介绍了使用Silvaco Atlas进行GaN HEMT电热特性仿真的完整流程,特别针对新手常见问题提供避坑指南。从软件环境配置、结构定义、网格划分到物理模型设置,逐步解析关键步骤,并附有代码解读和调试技巧,帮助读者快速掌握GaN器件仿真的核心技术。

weixin_29215815的博客 597

LeetCode -Reverse Integer 数字反转

Input: 123Output:  321解题思路通过%10得到个位数大小        例如  326得到 6然后将输入的数字/10带入继续循环     例如  326 =&gt;32然后将 之前 %10的数字 X10+现在%10的个位数    例如   32得到2,然后 6*10+2=62反复循环即可翻转数字了, INT可能会出现数组越界 失真,最好使用 long类型    public i...

a2615381的专栏 316

离线安装ambari 更换spark版本 集成carbondate文档

1、Linux系统环境配置 1.1 配置IP地址 vim /etc/sysconfig/network-script/ifcfg-eth0 “DEVICE”:网卡对应的设备别名,如ifcfg-eth0第一块网卡; “HWADDR”:网卡物理地址; “BOOTPROTO”:网卡获得ip地址的方式,Static(静态 ip地址)dhcp(通过dhcp协议获取ip)bootip通过boot...

weixin_44742962的博客 3036

RTOS任务调度原理:高优先级任务为何在低优先级任务执行时无法响应

实时操作系统(RTOS)的核心在于其确定性的任务调度机制,它通过优先级抢占确保关键任务及时执行。其基本原理是调度器仅在特定调度点(如任务主动阻塞、中断退出时)运行,比较就绪态任务的优先级并切换上下文。这一机制的技术价值在于为嵌入式系统提供可预测的响应时间,广泛应用于工业控制、汽车电子和物联网设备等对实时性要求高的场景。当低优先级任务执行**长时间非阻塞运算**且无中断发生时,调度器无法被触发,导致高优先级任务虽处于就绪态却无法获得CPU,造成系统响应延迟。理解**任务状态机**与调度点,是优化实时性、避免此

weixin_33508411的博客 287

LeetCode 反转整数(Reverse Integer)

题目 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 解题思路 1.现...

二营长 897

Android车载桌面开发实战:从CarLauncher源码解析到自定义Launcher开发(Android 11)

本文深入解析了Android 11中CarLauncher的源码架构与核心模块,并提供了从零开始定制开发车载Launcher的完整实战指南。内容涵盖车载桌面的独特定位、驾驶场景优化、多屏协同、动态内容嵌入等核心挑战,以及如何构建符合安全规范、体验流畅的自定义车载桌面应用,是车载应用开发者提升系统级定制能力的实用参考。

weixin_29266647的博客 516

翻转数组

翻转数组

Xiao_20170620的博客 622

YoloV8改进策略:主干网络篇|MobileNetV4主干替换YoloV8的BackBone(独家原创)

今年,轻量级王者MobileNetV4闪亮登场!在我们这篇文章里,我们把MobileNetV4加入到了YoloV8中,替换原有的BackBone。哈哈,你猜怎么着?效果超赞!文章里详细记录了改进过程,给那些正在为创新点子发愁的小伙伴们提供了满满的灵感。嘿,想要发表关于轻量级改进的论文?这篇文章绝对是你的首选参考!

m0_47867638的博客 3192

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

7. Reverse Integer

题目链接:https://leetcode.com/problems/reverse-integer/ 解题思路: 要求是实现数字的翻转,这个有意思的地方在于-1%10=-1,其实可以不用太考虑正负号的问题。 而且题目改了,如果翻转后的数字超出了Integer的范围,直接返回0。 1 class Solution { 2 public int reverse(int...

weixin_30369087的博客 57

游戏市场销售数据抓取:使用Python爬虫获取游戏市场上的销售情况和玩家反馈

在本文中,我们使用Python爬虫抓取了多个游戏平台上的销售数据、玩家反馈和游戏动态。通过使用requests和Selenium,我们能够有效地获取静态和动态网页数据,并利用pandas进行数据处理和存储。如果您有更具体的需求,可以扩展此爬虫以抓取更多的数据,进行深度分析或实现更复杂的可视化功能。数据抓取是一项非常强大的技术,它不仅能够帮助游戏开发者优化产品,还能帮助营销团队理解玩家需求,提升市场竞争力。

2201_76125261的博客 1308

LeetCode练习-翻转数字(Reverse Integer)

Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123 Output: 321 Example 2:Input: -123 Output: -321 Example 3:Input: 120 Output: 21 Note:Assume we are dealing with an envi...

Mr_zhaoz的博客 591

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【力扣Leetcode题解系列之0007—— Reverse Integer:整数反转解题全析】

题目摘要 力扣第7题"Reverse Integer"要求反转32位有符号整数。本文详细解析两种解题方法:字符串转换法和纯数学法。字符串法通过类型转换和反转字符串实现,纯数学法通过循环取模运算处理数字位。两种方法均需处理边界条件,确保结果在32位整数范围内(-2147483648到2147483647),否则返回0。文章提供了P/J/C/C++/G五种语言的完整代码实现,并分析了算法的时间复杂度和空间复杂度。最后还提出进阶问题,建议处理64位整数反转以t拓展解题思路。

youngerwang的博客 950

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

leetcode Reverse Integer 反转数字 第七题

import java.util.Vector; import static java.lang.Math.pow; public class ReverseInteger_7 { /** * 将数字分解,装到vector中, * 从vector中转换为数字,length&lt;10可直接组装,length = 10;需要进行判断 * @param x...

腼腆的偷听桃的博客 238

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LeetCode之Reverse integer(Easy)翻转整数

Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing with an ...

qq_44739053的博客 263

LeetCode:Reverse Integer

题目链接 这是目前为止刷过LeetCode里最简单的题目了,主要注意环境的存储的数字范围是[−2^31, 2^31 −1],即在计算过程中数字的范围必须在[-2147483648,2147483647]内。 AC代码: class Solution { public: int reverse(int x) { int tmp=x; int y=0;//存...

十早韦的博客 254

LeetCode 7. Reverse Integer题解

文章目录题目7. Reverse Integer分析思路一:利用`StringBuilder`特性思路二:按位依次翻转题解Java实现思路一Java实现思路二C++实现思路二 题目 7. Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. 给出一个 32 位的有符号整数,你需要将这个整数中每位上的...

孑辞的博客 568

Reverse Integer 翻转数字@LeetCode

package Level2; /** * * Reverse Integer * * Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to show spoilers. Have you thought about this?

2563

【LeetCode】7. Reverse Integer 翻转整数

一、概述 输入一个整数,翻转并输出。 注意溢出情况。 二、分析 1、我的方法 这个注意溢出情况可真的是好蛋疼,stoi直接用不了了,会报错,自己写stoi也会报错。反正就是出现大于int的最大值的情况就会报错,整个程序中不能出现大于int的情况。 因此我选择在string中进行比较。 首先把输入的整数转换为string。然后翻转。 如果string的数字不超过10个,那么翻转了...

四轩茶屋 163

Leetcode 007 Reverse Integer 整数翻转

题目链接   英文原文Given a 32-bit signed integer, reverse digits of an integer.Note: Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the pu...

watwg的博客 242

LeetCode第7题 整数反转(Reverse Integer)

文章目录题目地址题目描述代码实现 题目地址 https://leetcode-cn.com/problems/reverse-integer/ 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得...

ThinkWon的博客 5885

Leetcode1-100: 07. Reverse Integer

Leetcode1-100: 07. Reverse Integer问题描述解题思路代码实现复杂度分析分析 问题描述 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing wi

Y123iwantit的博客 208

LeetCode07:Reverse Integer

原题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 翻转输入的整数 算法分析: 算法1: 将整数转化为字符串,通过翻转字符串来实现数字的翻转。 算法2: 将整数放入字符数组中,通过从尾到头

做一名努力的通信程序员 592

leetcode 7. Reverse Integer

leetcode 7. Reverse Integer 代码很好写,需要考虑呢的是反置的数字超出int 型的时候就要返回0.这里参考了https://www.cnblogs.com/ariel-dreamland/p/8706403.html这篇博客。 然后把leetcode里面默认给的数据类型也改了 long long int reverse(int x...

wyh196646的博客 167
上一篇: LeetCode:Move Zeroes - 将数组中的0移到最后
下一篇: LeetCode:Palindrome Number - 回文数
chenzai1946
博客等级 码龄10年 41粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值