LeetCode刷题(0009)---7. 整数反转

LeetCode—7. 整数反转

01题目描述:

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

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

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

02题目分析:

在这里插入图片描述

这一个题目首先,我们注意的是**有符号数!!**则其数值范围为 [−231, 231 − 1]
所以我们要做正数和负数的处理。方式有一点是一样的,那就是无论整数负数的解决方式是一样的,唯一不一样的就是这一个正负号的问题。
所以我的处理方式,是用abs()把负数全部变成整数去处理,并且标记出负数,最后计算之后,再在对应的负数前面加上符号-负号即可。

03解答:

方法一、

class Solution:
    def reverse(self, x: int) -> int:
        # 方法一
        x_str = str(abs(x))
        list1 = [item for item in x_str]
        sum = 0
        for index,item in enumerate(list1):
            sum += int(item)*(pow(10,index))
        if not -pow(2,31)<=sum<=pow(2,31)-1:
            sum = 0
        # print(sum)
        if x>=0:
            return sum
        else:
            return -sum
        # return sum if x>0 else -sum
        

方法二:

class Solution:
    def reverse(self, x: int) -> int:
        # 方法二
        x_str = str(abs(x))
        list1 = x_str[::-1]
        if not -pow(2,31)<= (int(str(list1)) or -int(str(list1)) ) <=pow(2,31)-1:
            return 0
        if x>=0:
            return int(str(list1))
        else:
            return -int(str(list1))
        # return int(str(list1)) if x>0 else -int(str(list1))

3.1.方法1运行结果:

在这里插入图片描述

3.1.方法1耗时分布情况

在这里插入图片描述

3.1.方法1内存使用情况

在这里插入图片描述

3.2.方法2运行结果:

在这里插入图片描述

3.2方法2耗时分布情况

在这里插入图片描述

3.2.方法2内存使用情况

在这里插入图片描述

04结语:

个人记录,新手入门,多多学习,欢迎大家交流探讨!
个人网站: http://106.54.78.238/
song_of _sea的个人网站 http://106.54.78.238/

猜你喜欢

转载自blog.csdn.net/weixin_44824717/article/details/108114993