算法探索_整数反转

问题描述:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/reverse-integer

解决思路:

深海一看这到题,第一个想法就是String反转,第二个想法就是StringBuffer循环添加。

1.首先排除特殊情况:0,因为0反转后还是0;

2.拿出 int负数转String后的“-”符号,将它装入StringBuffer的底部;

3.从后往前的顺序,将int转Sring的结果依次装入StringBuffer中

4.主意:最终return的时候要try一下异常,因为得出的结果可能会超出int的位数

/*
     *作者:赵星海
     *时间:2020/7/24 14:14
     *用途:整数反转
     */
    private int reverse(int x) {
        if (x == 0) return 0;
        String s = new Integer(x).toString();
        StringBuffer resultBuffer = new StringBuffer();
        if (x < 0) {
            s = s.substring(1, s.length());
                resultBuffer.append("-");
        }
        int length = s.length();
        for (int i = length; i > 0; i--) {
            resultBuffer.append(s.charAt(i - 1) + "");
        }
        try {
            return Integer.parseInt(resultBuffer.toString().trim());
        } catch (Exception e) {
            return 0;
        }

    }
如转载,请注明出处。毕竟,深海的访问量太少了。。。。

猜你喜欢

转载自blog.csdn.net/qq_39731011/article/details/107560086