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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值