首先判断是否为Integer的最小值 ,是则返回0,然后判断是否为负数,再将x取正,最后在运行中判断是否会溢出,是则返回0。
class Solution {
public int reverse(int x) {
if(x==Integer.MIN_VALUE)
return 0;
int neg=x<0?-1:1;
x*=neg;
int ans=0;
while(x>0)
{
int n=ans;
n*=10;
n+=x%10;
x/=10;
if(n/10!=ans)
return 0;
ans=n;
}
return ans*neg;
}
}