Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
#include<iostream>
#include<list>
using namespace std;
class Solution {
public:
int reverse(int x) {
const int MAX_1 = 2147483647;
const int MAX_2 = -2147483648;
if( x == MAX_2 || x == 0)
return 0;
bool IsNegative = false;
if( x < 0)
{
IsNegative = true;
x = -x;
}
list<char> num;
while(x)
{
char tmp = x % 10;
num.push_back( tmp );
x = x / 10;
}
long long l_re = 0;
long long mi = 1;
while( num.size()){
l_re += mi * num.back();
num.pop_back();
mi = mi * 10;
}
if( l_re > MAX_1)
return 0;
else
return IsNegative ? -l_re : l_re;
}
};
int main()
{
Solution solution;
cout<<solution.reverse(1534236469);
getchar();
return 0;
}