Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
Solution:
Tips:
avoid judging whether reversed number is overflow, we can use limitation of build-in variable 'int'. we can reverse the number for twice, and then compare with the initial number,
if equal, the result isn't overflow, otherwise overflow, for number's suffix is 0, we need specific logical.
Java Code :
public class Solution {
public int reverse(int x) {
int result = justReverse(x);
int reverseResult = justReverse(result);
return reverseResult == x || x % reverseResult == 0 ? result : 0;
}
private int justReverse(int x) {
int result = 0;
while(x != 0) {
int m = x % 10;
x = x / 10;
result = result * 10 + m;
}
return result;
}
}