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

Posted 二当家的白帽子

tags:

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

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

原题传送门



题解

从最后一位逐渐向前拼接,可以想像成栈数据结构,取出最后一位放到结果的最后一位,这样循环完毕相当于整体反转,唯一要注意的就是处理超过32位有符号数的范围。

java

class Solution {
    public int reverse(int x) {
        final int max = Integer.MAX_VALUE / 10;
		final int min = Integer.MIN_VALUE / 10;
		int       rev = 0;
		while (x != 0) {
			if (rev > max || rev < min) {
				return 0;
			}
			rev = rev * 10 + x % 10;
			x /= 10;
		}
		return rev;
    }
}

rust

impl Solution {
    pub fn reverse(x: i32) -> i32 {
        let max = i32::MAX / 10;
        let min = i32::MIN / 10;
        let mut rev = 0;
        let mut x = x;
        while x != 0 {
            if rev > max || rev < min {
                return 0;
            }
            rev = rev * 10 + x % 10;
            x /= 10;
        }

        rev
    }
}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

本文由 二当家的白帽子 https://le-yi.blog.csdn.net/ 博客原创,转载请注明来源,谢谢~

以上是关于7. 整数反转(leetcode力扣算法 - java / rust)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode算法-简单7.整数反转

LeetCode 力扣7. Reverse Integer 整数反转 Java 解法

LeetCode 力扣7. Reverse Integer 整数反转 Java 解法

力扣7. 整数反转

007整数反转

力扣初级算法——整数反转