每日一道leetcode:7. 整数反转

Posted zhiyong_will

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一道leetcode:7. 整数反转相关的知识,希望对你有一定的参考价值。

1. 题目(中等)

题目链接

给你一个 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

2. 分析与解答

直接对原整数取余取到末尾数,并用该末尾数*10实现翻转

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

注意:这里在*10实现翻转之前,得判断是否超出最大和最小的表示范围

以上是关于每日一道leetcode:7. 整数反转的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 每日一题 7.整数反转

小Y学算法⚡️每日LeetCode打卡⚡️——7.整数反转

leetcode300-每日刷题档

每日一道leetcode:1. 两数之和

每日算法/刷穿 LeetCode7. 整数反转(简单)

每日一道leetcode:11. 盛最多水的容器