需要判断整数溢出,我这里的思路就是判断新的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;}
}