Leetcode-7 反转整数 python3

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

示例1:

输入: 123

输出: 321

示例2:

输入: -123

输出: -321

示例3:

输入: 120

输出: 21

注意:

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

反转的题自然想到了python的切片功能,所以我先把整型转化为str了,然后利用切片来做。

strx[::-1]表示strx[start_index : end_index : step],其中start_index表示起始索引,end_index表示结束索引;step表示步长,默认值是1,-1是反向。

还需要考虑一个正负数的问题,以及是否溢出的问题,其他貌似就没什么了。

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

        else:
            strx = strx[::-1]
            if int(strx) < 2 ** 31-1:
                return(int(strx))
            else:
                return(0)

当然,也可以用strx[::-1][:-1]表示,相当于切了两次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值