-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReverseInteger.java
63 lines (45 loc) · 1.31 KB
/
ReverseInteger.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/* Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1].
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
*/
public class ReverseInteger {
public static int reverse(int input) {
int cinput = input;
Double out = new Double(0);
while (cinput != 0) {
out = out * 10 + (cinput % 10);
cinput = cinput / 10;
}
if (out > Integer.MAX_VALUE || out < Integer.MIN_VALUE) {
return 0;
}
return (int) Math.round(out);
}
public static int reverseWithoutLong(int x) {
int prevRev = 0 , rev= 0;
while( x != 0){
rev= rev*10 + x % 10;
if((rev - x % 10) / 10 != prevRev){
return 0;
}
prevRev = rev;
x= x/10;
}
return rev;
}
public static void main(String argv[]) {
for (String var : argv) {
System.out.println(ReverseInteger.reverseWithoutLong(new Integer(var)));
}
}
}