
思路一:整数转化成字符串,字符串反转,最后再转化成整数
细节:如果是负数,负号需要单独处理。
python
class Solution:
def reverse(self, x: int) -> int:
if x < 0:
x = str(x)[1:]
x = x[::-1]
x = '-' + x
else:
x = str(x)
x = x[::-1]
if int(x) > 2**31-1 or int(x) < -2**31:
return 0
else:
return int(x)
思路2:利用整除和取余运算符
细节:需要区分正数和负数,可以引入一个flag标记,如果为正数,flag=1;如果为负数,flag=-1.
python
class Solution:
def reverse(self, x: int) -> int:
res = 0
flag = 1
if x < 0:
flag=-1
x = -x
while x != 0:
res = res * 10 + x % 10
x //= 10
if res < -2**31 or res > 2**31-1:
return 0
return res* flag