-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReverseInteger.java
More file actions
24 lines (24 loc) · 1.12 KB
/
Copy pathReverseInteger.java
File metadata and controls
24 lines (24 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class ReverseInteger {
public int reverse(int x) {
int reversed = 0;
while (x != 0) {
int pop = x % 10;
x = x / 10;
// int 的最大值為 2147483647
// 如果 reversed > Integer.MAX_VALUE/10,那麼 reversed * 10 + pop 會溢位
// 如果 reversed == Integer.MAX_VALUE/10 且 pop > 7,那麼 reversed * 10 + pop 會溢位
if (reversed > Integer.MAX_VALUE/10 || (reversed == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
// int 的最小值為 -2147483648
// 如果 reversed < Integer.MIN_VALUE/10,那麼 reversed * 10 + pop 會溢位
// 如果 reversed == Integer.MIN_VALUE/10 且 pop < -8,那麼 reversed * 10 + pop 會溢位
if (reversed < Integer.MIN_VALUE/10 || (reversed == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
reversed = reversed * 10 + pop;
}
return reversed;
}
public static void main(String[] args){
ReverseInteger solution = new ReverseInteger();
int x = 123;
System.out.println(solution.reverse(x));
}
}