【刷题记录】7. 整数反转

简介: 【刷题记录】7. 整数反转

一、题目描述


来源:力扣(LeetCode)


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


如果反转后整数超过 32 位的有符号整数的范围[−

网络异常,图片无法展示
|
, $2^{31} − 1],就返回 0。


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


示例 1:


输入:x = 123


输出:321


示例 2:


输入:x = -123


输出:-321


示例 3:


输入:x = 120


输出:21


示例 4:


输入:x = 0


输出:0


提示:


-231 <= x <= 231 - 1


二、思路分析


按照正常思路我们很容易想到


  • 每次对数字取余 n = x % 10 记得到当前位的数字
  • 反转后的数字为 res = res * 10 + n


此时即可得到反转后的数字,但是以为题目要求


如果反转后整数超过 32 位的有符号整数的范围[−

网络异常,图片无法展示
|
, $2^{31} − 1],就返回 0。


  • 所有在每次进行下一位数数组的反转时,要判断res是否已经超出了题目的范围


三、代码实现

class Solution {
    public int reverse(int x) {
        int res =0;
while (x !=0) {
if (res < Integer.MIN_VALUE / 10 || res > Integer.MAX_VALUE / 10) {
                return 0;
            }
            int n = x % 10;
            x /=10;
            res = res * 10+ n;
        }
        return res;
    }
}


复杂度分析


  • 时间复杂度:
    网络异常,图片无法展示
    |
    。翻转的次数即 x 十进制的位数
  • 空间复杂度:
    网络异常,图片无法展示
    |


运行结果


网络异常,图片无法展示
|


总结


这个题目实现的思路来说,还是很容易想到的。
这道题目的重点是在于在于对反转后数组是否在题目规定范围内的处理。

目录
相关文章
|
9月前
|
存储 Python
leetcode-7:整数反转
leetcode-7:整数反转
42 1
|
存储 算法
LeetCode7-整数反转
LeetCode7-整数反转
|
4月前
|
存储
LeetCode整数反转
解决LeetCode上的整数反转问题的几种方法,包括错误的方法和优化后的解决方案,以及如何避免反转后的整数超出32位有符号整数范围的问题。
60 1
|
6月前
|
算法
LeetCode第7题整数反转
该文章介绍了 LeetCode 第 7 题整数反转的解法,通过除 10 取模和乘 10 累加的方式实现整数反转,同时注意边界情况的判断,并总结了通过举例推算发现规律的解题思路。
LeetCode第7题整数反转
|
算法
【Leetcode-190.颠倒二进制位 -191.位1的个数 -202.快乐数】
【Leetcode-190.颠倒二进制位 -191.位1的个数 -202.快乐数】
58 0
|
存储 算法 Java
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
73 0
|
存储 算法 安全
LeetCode - #7 反转整数
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
存储 Java Python
leetcode:7.整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
46 0
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
167 0
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
|
API Python
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母
155 0
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母