class Solution(object):
#考慮到數字尾數存在0,去除字符串後面的0
def excludeZero(self,x):
if x.endswith("0"):
x = x[:-1]
return self.excludeZero(x)
return x
#檢查是否溢出
def check(self,x):
if x > (2**31 - 1) or x < (2**31)*(-1):
return 0
else:
return x
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x == 0:
return 0
if x > 0 :
x = str(x)
x = self.excludeZero(x)
x = int(x[::-1])
#考慮負數的情況
if x < 0:
x = str(x)[1:]
x = self.excludeZero(x)
x = -1 * int(x[::-1])
return self.check(x)
這個算法的主要思路比較清晰,就是先將整數轉換成字符串,再通過字符串翻轉後再轉換回整數
不過一些特殊情況需要考慮,例如負數的情況、尾數是0的情況