方法:数学
也没什么好的方法,这种题应该经常做,固定的方法逆序一个数字,难点是需要考虑边界条件与负数的逆序处理。
class Solution:
def reverse(self, x: int) -> int:
def reverse_pos_int(num):
reversed_num = 0
while num:
remainder = num % 10
reversed_num = reversed_num * 10 + remainder
num //= 10
return reversed_num
if x >= 0 and reverse_pos_int(x) <= 2 ** 31 -1:
return reverse_pos_int(x)
elif x < 0 and -reverse_pos_int(-x) >= -2 ** 31:
return -reverse_pos_int(-x)
else:
return 0