Description:
https://leetcode.com/problems/reverse-integer/#/description
Boundary:
Overflow
Algorithm:
The problem is not difficult, but ooverflow has to be considered.
Check overflow: if (result > INT_MAX / 10 || 10 * result > INT_MAX – x % 10) return 0;
Code:
class Solution {
public:
int reverse(int x) {
int result;
if (x > 0)
{
result = reversePosNum(x);
}
else
{
result = -1 * reversePosNum(-x);
}
return result;
}
private:
int reversePosNum(int x)
{
int result = 0;
while (x > 0)
{
if (result > INT_MAX / 10 || 10 * result > INT_MAX – x % 10) return 0;
result = result * 10 + x % 10;
x /= 10;
}
return result;
}
};