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]表示,相当于切了两次。

你可能感兴趣的:(算法练习)