leetcode的每日一题更新( Reverse Integer)

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321
题目意思:反转一个int,返回的时候如果超过32位则返回0
本来这么简单的题目不想写文章,但是遇到一个测试用例莫名其妙的用加负号和~a+1的办法都不能将其变成正数,想了半天原来是超过int的最大值,将Integer里面的静态成员变量输出一下看到负数的值比正数大一的。只好把int转换成long,再用StringBuilder的字符串反转来做,也可以用循环来做,那样麻烦一点,就是一边除一边乘而已。附上我的代码:

    public int reverse(int x) {
        
        StringBuilder a=null;
        long temp=x;
        if(x>0) {
            a =new StringBuilder(""+temp);
        }else {
            a = new StringBuilder(~temp+1+"");
        }
        a.reverse();//返回时判断是否太大
        long b =Long.parseLong(a.toString());
        if(b>Integer.MAX_VALUE || b

你可能感兴趣的:(leetcode的每日一题更新( Reverse Integer))