欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > LeetCode---整数反转

LeetCode---整数反转

2025/5/2 3:01:09 来源:https://blog.csdn.net/wangqiang996/article/details/147427334  浏览:    关键词:LeetCode---整数反转

整数反转

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

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

示例

示例 1:

输入:x = 123
输出:321
示例 2:

输入:x = -123
输出:-321
示例 3:

输入:x = 120
输出:21
示例 4:

输入:x = 0
输出:0

提示:

-231 <= x <= 231 - 1

python 实现

def reverse(x: int):# 定义 32 位有符号整数的范围INT_MIN, INT_MAX = -2 ** 31, 2 ** 31 - 1# 初始化结果变量result = 0# 取绝对值处理,保留符号信息sign = -1 if x < 0 else 1x = abs(x)while x != 0:# 取出最后一位数字digit = x % 10# 更新结果result = result * 10 + digit# 去除最后一位数字x //= 10# 恢复符号result *= sign# 检查是否溢出if result < INT_MIN or result > INT_MAX:return 0return resultif __name__ == '__main__':print(reverse(-123))

Java 实现

class Solution {public int reverse(int x) {// 定义 32 位有符号整数的范围int INT_MIN = Integer.MIN_VALUE;int INT_MAX = Integer.MAX_VALUE;int result = 0;while (x != 0) {// 取出最后一位数据int digit = x % 10;// 检查是否会溢出if (result > INT_MAX / 10 || (result == INT_MAX / 10 && digit > 7)) return 0;if (result < INT_MIN / 10 || (result == INT_MIN / 10 && digit < -8)) return 0;// 更新结果result = result * 10 + digit;// 去掉最后一位数字x /= 10;}return result;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词