7. Reverse Integer

题目链接:https://leetcode.com/problems/reverse-integer/

思路一:作为值处理

代码

class Solution:
    def reverse(self, x: int) -> int:
        res,x_abs=0,abs(x)
        while x_abs:
            res,x_abs=res*10+x_abs%10,x_abs//10
        if res>pow(2,31) : 
            res=0
        return res if x>0 else -res

思路详解

取出符号,在进行处理
一边整除10,一边乘10相加除数
在这里插入图片描述

注意点

  1. 取出符号再进行处理,思路会更简单
  2. 注意范围的限定

思路二:作为字符串处理

代码

class Solution:
    def reverse(self, x: int) -> int:
        abs_x=abs(x)  # 取绝对值
        res=int(str(abs_x)[::-1])  # 反转字符串
        res = res if res < pow(2,31) else 0  #判断是否溢出
        return res if x >0 else -res   

思路详解

通过转为字符串,对字符串进行反转,然后再转为整数

注意点

需要先处理符号,同时因为python整数木有位数要求才能如此,不然直接将字符串转为整数,有溢出的可能,需要查看溢出处理机制,否则可能会有错误。
另外,思路一的处理速度更快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值