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

Posted lovoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java每日算法--给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。相关的知识,希望对你有一定的参考价值。

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

来源:力扣(LeetCode)

解法:

public static int reverse(int x) {
        if (x > 230 || x < -231 || x == 0) {
            return 0;
        }
        //记录反转后的数据
        int result = 0;
        // 假如 x = 210 
        // 1次遍历  tmp = 0; result = 0; x = 21
        // 2次遍历 tmp = 0; result = 1 ; x = 2
        // 3次遍历 tmp = 1; result = 12 ; x = 0 此进循环结束,输出 12

        //假如 x = -123
        // 1次遍历  tmp = 0; result = -3; x = -12
        // 2次遍历 tmp = -3; result = -32 ; x = -1
        // 3次遍历 tmp = -32; result = -321 ; x = 0
        while (x != 0) {
            //保存临时的结果
            int tmp = result;
            result = result * 10 + x % 10;
            x = x / 10;
            // 将计算之后的结果 / 10,判断是否与计算之前相同,如果不同,证明发生溢出,返回0
            if(result / 10 != tmp){
                return  0;
            }
        }
        return result;
    }

项目地址:https://gitee.com/charlinchenlin/wysmall

以上是关于Java每日算法--给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。的主要内容,如果未能解决你的问题,请参考以下文章

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

2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段

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

7. 整数反转(leetcode力扣算法 - java / rust)

7. 整数反转(leetcode力扣算法 - java / rust)

算法刷题:LC初级算法