## Reverse Integer

Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321

### Analysis:

Simple question. Just be careful with the last digit and positive/negative.
Also be careful with the corner cases.
Idea is to keep x/10 for the original int and *10 for the result int + x%10.

Note that in Python, when compute -1/10 the result is -1 not the expected 0.
This is because the "floor" function for the int division.
E.g.,  math.floor(0.89) = 0
math.floor(-0.89) = -1

So I check the positive and negative sign in the python code.
The number 214748364 in python code is the maxint/10 = 2147483647/10.

### Code(C++):

class Solution {
public:
int reverse(int x) {
int  res = 0;
while (x!=0){
if (res > INT_MAX/10 || res < INT_MIN/10){
return 0;
}
res = res*10+ x%10;
x= x/10;
}
return res;
}
};


### Code (Python):

class Solution:
# @return an integer
def reverse(self, x):
res = 0
if x>=0:
pos = True
else:
pos  = False
x = -x
while not x == 0:
if res > 214748364:
return 0
else:
res = res*10 + x%10
x = x/10
if pos:
return res
else:
return -res



1. What about the overflow cases?

1. Sorry, I don't really get what you mean by overflow cases, could you give an example?

2. Assuming an integer is 32-bits, if x = 2147483643, the reversed integer would be 3463847712, which certainly overflows. I think you need to handle this in your code, cause otherwise the problem is just too trivial and meaningless. Also, it is not necessary to check whether x is positive or not, just replace the termination condition of while loop with x!=0 and your code will handle all positive and negative cases correctly.

3. just take a bigger type for res such as long , and put an extra condition saying if res > INT_MAX return 0

4. can anyone explain why this weird test case:
Input: 1534236469
Output: 1056389759
Expected: 0

5. @Yu Zhu are you sure your either of above solution got accepted at leetcode ?
because I got WA :

Input: 1534236469
Output: 1056389759
Expected: 0

you didn't take care of overflow cases. Did you?

6. Thanks for your reply, I think it might because this post was written long time ago and leetcode oj has changed some of the test cases. Now I have changed the code and tested on OJ.

Thanks.