leetcode---整数反转

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40042143/article/details/85638651

用stringbuffer写了一个,提交上去----溢出问题,不通过

public intreverse(int x)
{
if(x>0)
        {
            String tmp=String.valueOf(x);
            StringBuffer sb=new StringBuffer(tmp);
            String rx=sb.reverse().toString();
            int r1=Integer.valueOf(rx);
            return r1;
        }else if(x<0)
        {
            x=x*(-1);
            String tmp=String.valueOf(x);
            StringBuffer sb=new StringBuffer(tmp);
            sb.append("-");
            String rx=sb.reverse().toString();
            int r2=Integer.valueOf(rx);
            return r2;

        }else {
           return Integer.valueOf("");
        }


    }
}

官方的解法:

class Solution {
    public int reverse(int x) {
        int rev = 0;
        while (x != 0) {
            int pop = x % 10;
            x /= 10;
            if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
            if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
            rev = rev * 10 + pop;
        }
        return rev;
    }
}

 

猜你喜欢

转载自blog.csdn.net/weixin_40042143/article/details/85638651
今日推荐