美文网首页图解算法
LeetCode第7题:整数反转

LeetCode第7题:整数反转

作者: 你偷了我的小鱼干 | 来源:发表于2019-07-31 16:50 被阅读0次

本文首发于公众号「猿天罡」,转载请注明出处
个人网站:https://liuwynn.github.io

本题源自 LeetCode ,题号7。

1.题目描述

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

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

2.解题思路

题目的意思是:给定我们一个整数,让我们经过算法求解以后,返回给定整数的逆序整数,如给定 123,返回 321,值得注意的是,题目最后提醒了一下反转之和整数可能溢出的问题。

具体思路如下:

  1. 假设给定整数为 X,我们都知道,X / 10的值等于商的整数部分,X % 10的值等于余数部分。

  2. 如果 X 是个位数,就直接返回即可;

  3. 否则,我们就进入循环,当 X 最终变为个位数时,循环结束,循环过程如下:

    1. 我们设置一个变量 reverseX 来接收X的逆序值,初始赋值为0;

    2. 然后把 reverseX 保存的值升一位(乘以10),再加上 X除以10的余数部分;

    3. 接着把 X除以10的商的整数部分赋值给X;

    4. 重复执行步骤2和步骤3,直至循环结束。

  4. 循环结束后,reverseX 再加上 X 的值即为最终结果。

3.算法动画

假设给定整数值 X 为 123,依照上面给出的解题思路,运行过程如下:

图解整数反转

4.代码实现

个人精力有限,暂时只提供 Java 代码实现,后续可能会加入其他语言的实现代码,敬请期待哦~

4.1 Java实现

class Solution {
    public int reverse(int x) {
        long reverseX = 0;
        while ((x / 10) != 0) {
            reverseX = reverseX * 10 + (x % 10) * 10;
            x = x / 10;
        }
        reverseX += x;
        return (reverseX > Integer.MAX_VALUE || reverseX < Integer.MIN_VALUE) ? 0 : (int) reverseX;
    }
}

5.结尾语

算法是计算机编程的灵魂,就算这个灵魂是不太好理解的亚子,所以我想通过绘制动画的方式,让同学们能感受到算法的青春和活力。

如果你觉得本文对你有所帮助的话,欢迎扫码关注公众号「猿天罡」。

猿天罡

相关文章

  • LeetCode第7题:整数反转

    本文首发于公众号「猿天罡」,转载请注明出处个人网站:https://liuwynn.github.io 本题源自 ...

  • leetcode第7题:整数反转

    题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 考点 数学 解题思路 每次求x...

  • LeetCode-7 整数反转

    题目:7. 整数反转 难度:简单 分类:数学 解决方案:整数取模 今天我们学习第7题整数反转,这是个简单的数学题。...

  • Leetcode-7-(整数反转)

    Leetcode-7-(整数反转)[https://leetcode-cn.com/problems/revers...

  • LeetCode刷题 7 整数反转

    LeetCode刷题 7 整数反转 题目 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反装。示例...

  • 一起学算法-7.整数反转

    一、题目 LeetCode-7.整数反转链接:https://leetcode-cn.com/problems/r...

  • 7.整数反转-java实现

    第7题:整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 示例 2:...

  • 2019-07-19

    LeetCode第七题整数反转: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 注意:...

  • LeetCode:整数反转

    LeetCode第7号问题:整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行...

  • LeetCode刷题 题7. 整数反转

    给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整...

网友评论

    本文标题:LeetCode第7题:整数反转

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