LeetCode7-整数反转

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

你可能感兴趣的:(LeetCode题库,整数反转,整数溢出)