【leetcode】整数反转

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

如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

  • -231 <= x <= 231 - 1

 题目链接:

. - 力扣(LeetCode)

        最开始在在解题的时候想的是转成字符串处理再转回来,想了想发现溢出这个事好像cover不出,后面看了下官解起初还没看明白,研究了下才明白,这里记录一下:

class Solution {
public:
    int reverse(int x) {
        int rev = 0;
        while (x != 0) {
            if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
                return 0;
            }
            int digit = x % 10;
            x /= 10;
            rev = rev * 10 + digit;
        }
        return rev;
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/reverse-integer/solutions/755611/zheng-shu-fan-zhuan-by-leetcode-solution-bccn/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这里主要是if里面的判断语句不好理解;

int类型的取值范围为[-2^31, 2^31-1], 也就是[-2,147,483,648, 2,147,483,647] ,可以发现首位为2,末尾为8和7。

                    

当一个数,比如 num = 2,147,483,648 是一个超出范围的数,末尾为8,当按照

rev = rev*10 +digit 的数据计算到9位时,rev此时等于 846384741 ,这个数很显然是大于INT_MAX / 10的(2,147,483,64)。同理负数也是一样如果末尾大于8,且是一个10位数,翻转后必定溢出。

相关推荐

  1. 整数leetcode

    2024-07-14 18:12:02       29 阅读
  2. LeetCode每日一题.07(整数)

    2024-07-14 18:12:02       55 阅读
  3. 整数算法(leetcode第7题)

    2024-07-14 18:12:02       50 阅读
  4. LeetCode力扣】007. 整数(Python)

    2024-07-14 18:12:02       21 阅读
  5. Leetcode:罗马数字整数

    2024-07-14 18:12:02       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 18:12:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 18:12:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 18:12:02       57 阅读
  4. Python语言-面向对象

    2024-07-14 18:12:02       68 阅读

热门阅读

  1. Apache Kylin: 大数据时代的分析引擎

    2024-07-14 18:12:02       20 阅读
  2. 异步和线程池

    2024-07-14 18:12:02       20 阅读
  3. Go:常量&运算符&流程控制

    2024-07-14 18:12:02       15 阅读
  4. qiankun子应用vue加载js资源失效问题解决

    2024-07-14 18:12:02       17 阅读
  5. 深入理解C++11中的std::packaged_task

    2024-07-14 18:12:02       21 阅读
  6. 华为 NAT 技术介绍及配置

    2024-07-14 18:12:02       21 阅读
  7. prompt第三讲-PromptTemplate

    2024-07-14 18:12:02       18 阅读
  8. 微信小程序的目录结构

    2024-07-14 18:12:02       26 阅读