7. 整数反转

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

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

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

示例 1:

复制代码
输入:x = 123
输出:321

示例 2:

复制代码
输入:x = -123
输出:-321

示例 3:

复制代码
输入:x = 120
输出:21

示例 4:

复制代码
输入:x = 0
输出:0

提示:

  • -231 <= x <= 231 - 1

题解: 非常佩服这个解析,见下链接


官方推导边界值处理情况

cpp 复制代码
class Solution {
public:
    int reverse(int x) {
        int ans = 0, temp = 0;
        while (x != 0) {
            temp = x % 10;
            x = x / 10;
            // 判断是否 大于 最大32位整数    官网给的判断是否在区间内
           // if (ans < (-2 << 32) || ans > (2 >> 32))) {
                    if (ans > INT_MAX / 10 || ans < INT_MIN / 10) {
                        return 0;
                    }
                    ans = ans * 10 + temp;
                }
            return ans;        
    }
};
相关推荐
黑听人26 分钟前
【力扣 困难 C】329. 矩阵中的最长递增路径
c语言·leetcode
pay4fun1 小时前
2048-控制台版本
c++·学习
YuTaoShao2 小时前
【LeetCode 热题 100】141. 环形链表——快慢指针
java·算法·leetcode·链表
hjjdebug2 小时前
ffplay6 播放器关键技术点分析 1/2
c++·ffmpeg·音视频
小小小新人121233 小时前
C语言 ATM (4)
c语言·开发语言·算法
Azxcc04 小时前
C++异步编程入门
开发语言·c++
吐泡泡_4 小时前
C++(STL源码刨析/vector)
c++
你的冰西瓜4 小时前
C++排序算法全解析(加强版)
c++·算法·排序算法
এ᭄画画的北北4 小时前
力扣-31.下一个排列
算法·leetcode
特立独行的猫a4 小时前
11款常用C++在线编译与运行平台推荐与对比
java·开发语言·c++