【leetcode】整数反转

tech2024-10-31  13

整数反转

题目:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1:

输入: 123 输出: 321

示例2:

输入: -123 输出: -321

示例3:

输入: 120 输出: 21

注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解题思路:

我们可以一次构建反转整数的一位数字。在这样做的时候,我们可以预先检查向原整数附加另一位数字是否会导致溢出。 反转整数的方法可以与反转字符串进行类比。 我们想重复 “弹出” x 的最后一位数字,并将它 “推入” 到 res 的后面。最后,res 将与 x 相反。

代码:

class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ y,res=abs(x),0 boundry=(1<<31)-1 if x>0 else 1<<31 while y!=0: res=res*10+y%10 if res >boundry: return 0 y//=10 return res if x>0 else -res
最新回复(0)