LeetCode—7.Reverse Integer 整数反转
题目
https://leetcode.com/problems/reverse-integer/
给出任意位数的整数,将该整数反转输出。例如,给出123,输出321.
思路
第一种方法:首先想到是循环取整和取余,将整数拆分,要注意判断循环结束条件,python while 条件只要不是0就判断为true
第二种方法:将整数转化为字符串,将字符串反转,最后转换为整数。
这两种方法都要注意的是整数不要溢出,也就是不能小于-2147483648不能大于2147483648
代码
第一种方法
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
flag = 1 if x >= 0 else -1
new_x, x_ = 0, abs(x)
while x_:
new_x = new_x * 10 + x_ % 10
x_ = x_ / 10
new_x = flag * new_x
if new_x < 2147483648 and new_x > -2147483648 :
return new_x
else :
return 0
第二种方法
class Solution(object):
def reverse(x):
"""
:type x: int
:rtype: int
"""
flag = 1 if x >= 0 else -1
new_x = flag * int(str(flag * x)[::-1])
if new_x < 2147483648 and new_x > -2147483648 :
return new_x
else :
return 0