一个整数(int 32)中的数字进行颠倒,当颠倒后的整数溢出时,返回0。例如-98,返回-89。
class solution{
public:
int Reverse(int x){
if (x == 0)
{
return 0;
}
if (x == INT_MIN)
{
return 0;
}
int num = x > 0 ? x : -x; //小心坑注意最小值
int sum = 0;
long tmp;
while (num != 0)
{
tmp = (long)sum *10 + num % 10;//溢出解决
if (tmp > INT_MAX) return 0;
sum = sum * 10 + num % 10;
num /= 10;
}
return x > 0 ? sum : -sum;
}
};