7.整数反转

题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

难度:简单

示例1:

输入: 123
输出: 321

示例2:

输入: -123
输出: -321

示例3:

输入: 1534236469
输出: 0

注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

 

解题思路:由整数反转--->字符串反转,先把整数转换成字符串,最后再转换回整数

  • 方法一:切片法反转字符串

      执行用时 :24 ms

      内存消耗 :12.7 MB

  • 方法二:reserved()方法反转字符串

      执行用时 :28 ms

      内存消耗 :12.7 MB

代码:

  • 方法一:
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        # 转换成字符串,整数反转->字符串反转
        # 方法一:切片法反转y[::-1]
        
        if(x >= 0):                 #处理正整数
            y = str(x)              #str()把x转成字符串 
            y = int(y[::-1])
        else:                       #处理负整数
            y = str(abs(x))         #把负整数取绝对值之后再反转,最后添加负号
            y = int(y[::-1])  
            y = -y


        if (y < (-2) ** 31) or (y > 2 ** 31 - 1):  # 如果超出 [−2^31,2^31−1]范围,返回0
            return 0
        return y


  • 方法二: 
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int 
        """
        # 方法二:reversed()反转
        if (x >= 0):  # 处理正整数
            y = str(x)  # str()把x转成字符串 
            y = int(''.join(reversed(y)))
        else:  # 处理负整数
            y = str(abs(x))  # 把负整数取绝对值之后再反转,最后添加负号
            y = int(''.join(reversed(y)))
            y = -y

        if (y < (-2) ** 31) or (y > 2 ** 31 - 1):  # 如果超出 [−2^31,2^31−1]范围,返回0
            return 0
        return y

 

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_41644183

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

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

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

打赏作者

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

抵扣说明:

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

余额充值