# leetcode-7整数反转
# 题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123 输出: 3211
2
示例 2:
输入: -123 输出: -3211
2
示例 3:
输入: 120 输出: 211
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20