LeetCode Reverse Integer(反向整数)

来源:互联网 发布:mac office 2011 威锋 编辑:程序博客网 时间:2024/06/07 15:23

LeetCode 每日一题。

Example1: x = 123,return 321
Example2: x = -123,return -321
点击显示扰流板。
你有没有想过这个?
以下是编码前要问的一些好问题。如果您已经考虑过这一点,您的奖励积分!
如果整数的最后一位是0,输出应该是多少?即,例如10,100。
你注意到反转的整数可能会溢出吗?假设输入是一个32位整数,则1000000003的倒数溢出。你应该如何处理这种情况?
为了这个问题的目的,假设当反转的整数溢出时,你的函数返回0。
注意:
输入假定为32位有符号整数。当反转的整数溢出时,您的函数应返回0。**

@Test    public void test() {        System.out.println(reveser(100000003));    }    public int reveser(int x) {        String value = String.valueOf(x);        char[] s = new char[value.length()];        boolean flag = false;        int i = 0;                for (int j = value.length() - 1; j >= 0; j--) {                    char c = value.charAt(j);                    if(c == '-') {                        flag = true;                        continue;                    }else {                        s[i++] = c;                    }                }        String newString = flag ? "-" : "";        try {            int lenth = newString.equals("-") ? s.length - 1 :  s.length;            for (int q = 0; q < lenth; q++) {                    newString+=s[q];            }            return Integer.parseInt(newString);        } catch (NumberFormatException e) {            return 0;        }    }

思路:如果数值溢出,则返回0 那我们就使用try catch方法来做返回操作啦。如果输入的数值大于整数的最大值,也就是Integer.MAX_VAL 那我们就返回0 否则返回反过来后的整数或负数 运行时间略快!

这里写图片描述