力扣第七题-整数反转|Java 刷题打卡

240 阅读1分钟

本文正在参加「Java主题月 - Java 刷题打卡」,详情查看 活动链接

前言

力扣第七题如下所示:

在这里插入图片描述

一、思路

在仔细阅读题目后,可以从题目得知以下两个信息:

  • 输入:32位有符号整数,如 -123
  • 输出:从低位至高位的有符号整数,如 -321

以具体例子分析:

变量说明如下
x:输入值
target:输出值

输入: x = 3410913 为例(这个数是随手乱敲的~) 反转步骤:

  1. x % 10 = 3,拿到最低位 3
  2. target = 3 + target * 10 ,转为高位
  3. x = x / 10,丢弃 x 的最低位
  4. 重复 步骤 1~3

此题总结其实就一句话:取余拿到最低位,转为高位

二、实现

1. 实现代码

变量含义与上文思路中保持一致

    public int reverse(int x) {
        int target= 0;
        while (x != 0) {
        	// 超出范围,直接返回 0
            if (target < Integer.MIN_VALUE / 10 || target > Integer.MAX_VALUE / 10) {
                return 0;
            }
            // 低位转高位
            target = x % 10 + target * 10;
            // 丢弃低位
            x = x / 10;
        }
        return target;
    }

2. 测试代码

    public static void main(String[] args) {
        Number7 n = new Number7();
        System.out.println(n.reverse(1534236469));
    }

3. 执行结果

执行结果如下所示:

image.png

三、总结

今天是力扣第七题~
本系列将会更新力扣的1-10题,连续更新10天!
掘金币,我来啦😁