美文网首页
浩哥的力扣刷题记录——7. 整数反转

浩哥的力扣刷题记录——7. 整数反转

作者: Jack魏 | 来源:发表于2022-05-19 22:55 被阅读0次

    1. 题目

    官网地址:7. 整数反转 - 力扣(LeetCode) (leetcode-cn.com)

    题目截图

    2. 讲解

    题目的意思就是倒着取原始数字,并且排除大于或小于32位整数的情况。
    然后将结果输出即可。
    比如我输入123456,那你输出654321,
    如果是-19962020,那输出-2026991

    3. 思路

    这么一看挺简单的,因为人的思维可以直接通过倒着看就能直接得到结果。
    那么机器怎么实现呢?
    这就是将人脑的运算过程以一种可重复的实现方式来记录。
    根据题目的要求我们可以清楚知道,这就是不断取一个数的最后一位,经过进位后存储,然后再去除最后一位数,进入循环,直到取不到数字为止。
    可以参考如下运算过程:


    运算过程

    4. 参考代码

    public class L0007 {
        public static void main(String[] args) {
            int[] nums = {123, -123, 123456000,123456789, 888999000,-78912300, -1239870089};
            for (int num :nums) {
                System.out.println(new L0007().reverse(num));
            }
        }
    
        /**
         * 思路:倒着取每一位数字,然后一直*10进行扩大存储。然后原数字依次去除最后一位。
         * @param num 原始数字
         * @return 反转后数字
         */
        public int reverse(int num) {
            // 结果存放,必须要大于int,因为反转有溢出问题。
            long result = 0;
            while (num != 0){
                // *10相当于扩大一位   %10相当于取最后一位数字
                result = result*10 + num%10;
                // 相当于去掉数字的最后一位,比如原数123,执行之后变成12
                num /= 10;
            }
    
            // 看看是不是超过int最大最小值了
            if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
                return 0;
            }
    
            return (int)result;
        }
    }
    
    运行截图

    相关文章

      网友评论

          本文标题:浩哥的力扣刷题记录——7. 整数反转

          本文链接:https://www.haomeiwen.com/subject/btfcurtx.html