LeetCode(7)--.反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1: 输入: 123 输出: 321

示例 2: 输入: -123 输出: -321

示例 3: 输入: 120 输出: 21

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [-2^{31},2^{31}-1]。根据这个假设,如果反转后的整数溢出,则返回 0。


第一种方法:通过取余操作,来每次获取最后一个数

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        t = abs(x)
        rev=0
        while t:
            rev = rev*10+t%10
            t= t//10
        if rev>2**31 or -rev<-(2**32):
            return 0
        else:
            if x>=0:
                return rev
            else:
                return -rev

注意:

1)这里需要注意的一点是:python数据使用前是不用定义数据类型的,所以如果执行x/10操作,就算x是一个整数,返回的也会是一个小数,所以要用到取整函数。

  • -10/3 --->-3.3333333333333335
  • 10/4 --->2.5

2)要注意python中对负数的 % 操作结果。

对于负数取余会得到一个负的余数,比如:(-10)%3 直观来说应该会得到 −1,但是在python中执行后却得到了2。这点需要注意。

第二种方法:转成字符串后逆序输出

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        positive =1
        if x<0:
            x=-x
            positive = -1
        result = int(str(x)[::-1])
        if result>2**31-1 or -result<-2**31:
            return 0
        else:
            return result*positive

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且行且安~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值