Leetcode 7. 整数反转 中等 数学

7. 整数反转

题目:

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

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

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

示例 1:

输入:x = 123
输出:321

思路:

// 弹出 x 的末尾数字 digit
digit = x % 10
x /= 10

// 将数字 digit 推入 rev 末尾
rev = rev * 10 + digit

但是又要求不能超过整数范围,因此在计算rev时要先判断[INT_MIN/10,INT_MAX/10]是否在这个范围内

 

复制代码
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=x/10;
            rev=rev*10+digit;
        }
        return rev;
    }
};
复制代码

 

posted @   鸭子船长  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-05-07 Leetcode [650] 只有两个键的键盘 & Leetcode [651] 四键键盘 动态规划
2021-05-07 Leetcode [877] 石子游戏I 动态规划
2019-05-07 python socketpool:通用连接池(转)
点击右上角即可分享
微信分享提示