Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
37.52% 直接用long来转换,转换后判断是否越界。
class Solution {
public:
int reverse (int x) {
long lx = x;
long ly = 0;
long lremainder = 0;
bool bpositive = true;
if (x < 0)
{
bpositive = false ;
lx = -lx ;
}
else if (x == 0)
{
return 0;
}
while (lx != 0)
{
lremainder = lx % 10;
lx = lx / 10;
ly = 10 * ly + lremainder;
}
long lmax = 2147483647;
long lmin = -lmax-1;
if (ly > lmax || ly <lmin )
{
return -1;
}
if (bpositive == false)
{
ly = -ly ;
}
return ly ;
}
};