leetcode python3 翻转整数

一、快捷的思路

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

 

你可能感兴趣的:(leetcode)