# leetcode-7整数反转

# 题目

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
1
2

示例 2:

输入: -123
输出: -321
1
2

示例 3:

输入: 120
输出: 21
1
2

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。


# 解析

  • 目标是为了将整数的数字顺序反转,然后输出反转后的数据。
  • 新建一个整型变量(res),用于存储反转后的数据。
  • 通过和10取余的方式,将原数据的末尾获取到,再添加到res中
  • 原数据和10取整,覆盖原数据。
  • 循环条件是(判断它是否溢出)。

具体代码如下:

public class Solution {

    public static void main(String[] args) {
        int a = -12340;
        Solution b = new Solution();
        System.out.println(b.reverse(a));
    }

    public int reverse(int x) {
        int rev = 0;
        while (x != 0) {
            int pop = x % 10;
            x /= 10;
            if (rev > Integer.MAX_VALUE / 10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
            if (rev < Integer.MIN_VALUE / 10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
            rev = rev * 10 + pop;
        }
        return rev;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
上次更新时间: 2024年2月14日星期三上午10点24分