LeetCode Reverse Integer(反向整数)

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 否则返回反过来后的整数或负数 运行时间略快!

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值