-
Notifications
You must be signed in to change notification settings - Fork 6
/
_7_Reverse_Integer.java
39 lines (37 loc) · 1.16 KB
/
_7_Reverse_Integer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package leetcode;
/**
* Created by pingcai on 2017/5/10.
*/
public class _7_Reverse_Integer {
public static void main(String[] args) {
System.out.println(new _7_Reverse_Integer().reverse(1));
System.out.println(new _7_Reverse_Integer().reverse(-1));
System.out.println(new _7_Reverse_Integer().reverse(Integer.MIN_VALUE));
System.out.println(new _7_Reverse_Integer().reverse(Integer.MAX_VALUE));
}
//方法二:比较当前这个数与上次计算结果是否相同,不相同则是溢出
public int reverse(int x) {
int result = 0;
int next = 0;
while (x != 0) {
int end = x % 10;
x = x / 10;
next = result * 10 + end;
if ((next - end) / 10 != result) {
return 0;
}
result = next;
}
return result;
}
/*
//方法一:使用long保存x,再判断溢出
public int reverse(int x) {
long res = 0;
while (x != 0) {
res = res * 10 + x % 10;
x /= 10;
}
return res < Integer.MIN_VALUE || res > Integer.MAX_VALUE ? 0 : (int)res;
}*/
}