原题
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
解题思路
- 同样是获取每一位,滚动生成新的数
- 注意要考虑新的数值溢出的问题
完整代码
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x >= 0:
res = self.helper(x)
else:
res = -self.helper(-x)
return res if -2147483648 <= res <= 2147483647 else 0
def helper(self, num):
res = 0
while num > 0:
res *= 10
res += num % 10
num /= 10
return res