需要判断整数溢出,我这里的思路就是判断新的ans的值是否与(ans-mod)/10相等,如果溢出了,必然不相等,这是代码简洁且时间复杂度最快的做法!
class Solution {
public int reverse(int x) {
if(x==0){
return 0;
}
boolean negative=false;
if(x<0){
negative=true;
x=-x;
}
int ans=0;
while(x>0){
int mod=x%10;
int tmp=ans;
ans=ans*10+mod;
if(tmp!=((ans-mod)/10)){
return 0;
}
x/=10;
}
return negative?-ans:ans;
}
}