一、快捷的思路
1.思路:将整数转为字符串,将字符串翻转之后,变为整数,根据整数的范围和正负,返回正确的值
2知识:将字符串翻转的方法:
①切片的形式:string[::-1](步长为-1,并输出字符串)
②定义函数,将字符串转为list对象,通过list对象的reverse方法实现翻转
def myreverse(s):
l = list(s)
l.reverse()
return "".join(l)
③ 递归实现
def myreverse1(s):
if s == "":
return s
else:
return myreverse1(s[1:]) + s[0]
3代码实现
class Solution:
def reverse(self, x):
res=int(str(abs(x))[::-1])
if x>0 and res<2**31:
return res
if x<0 and res<=2**31:
res=-res
return res
return 0
二、原生的自己的思路
1.通过正负的情况,对于复数,进行绝对值之后进行循环求余数和除10运算(切记要将除法结果转换为整数),并进行是否溢出的判断
2.代码
class Solution:
def reverse(self, x):
tmp=0
if x<0:
while x!=0:
x=abs(x)
if tmp*10+x%10 >2**31:
return 0
tmp=tmp*10+x%10
x=int(x/10)
tmp=-tmp
if tmp<-2**31:
return 0
if x>0:
while x!=0:
if tmp*10+x%10 >2**31:
return 0
tmp=tmp*10+x%10
x=int(x/10)
if tmp>=2**31:
return 0
return tmp