尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

元宝 LeetCode 7.整形反转 Python3实现

元宝    LeetCode 7.整形反转 Python3实现 下面是LeetCode 7. 整数反转的Python3 实现包含常见写法与边界处理说明。题目描述简要给你一个 32 位的有符号整数x返回将x中的数字部分反转后的结果。如果反转后整数溢出超出 32 位有符号整数范围则返回0。范围[-2^{31}, 2^{31}-1] [-2147483648, 2147483647]✅ 解法一字符串反转最直观class Solution: def reverse(self, x: int) - int: sign -1 if x 0 else 1 x abs(x) reversed_x int(str(x)[::-1]) * sign if reversed_x -2**31 or reversed_x 2**31 - 1: return 0 return reversed_x思路说明先判断正负取绝对值后转字符串切片反转再乘回符号最后判断是否溢出✅ 易理解面试中可接受但略偏“取巧”✅ 解法二数学取模推荐面试标准解法class Solution: def reverse(self, x: int) - int: res 0 sign -1 if x 0 else 1 x abs(x) while x ! 0: digit x % 10 x // 10 res res * 10 digit res * sign if res -2**31 or res 2**31 - 1: return 0 return res思路说明每次取末位x % 10原结果乘以 10 后加上新位直到x 0最后检查 32 位溢出✅ 时间复杂度O(log₁₀ n)✅ 空间复杂度O(1)✅ 面试最优解✅ 进阶写法提前判断溢出更严谨class Solution: def reverse(self, x: int) - int: INT_MIN, INT_MAX -2**31, 2**31 - 1 res 0 sign -1 if x 0 else 1 x abs(x) while x ! 0: digit x % 10 x // 10 if res (INT_MAX - digit) // 10: return 0 res res * 10 digit return sign * res✅ 在累加前就判断是否会溢出更严谨示例x 123 → 321 x -123 → -321 x 120 → 21 x 1534236469 → 0溢出如果你需要逐行执行讲解 / 面试话术 / 对比其他语言实现可以继续问我
返回列表