LeetCode刷题记录day3:反转数组

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

class Solution:
    def reverse(self, x: int) -> int:
        xa = abs(x)
        t = []
        while(xa!= 0):
            t.append(xa%10) 
            xa = int(xa/10)
        rx = 0
        l = len(t)- 1
        while(l>=0):
            rx = rx + (10**l)*int(t[len(t)-1-l])
            l =l-1
        if x < 0 :
            rx = -rx
        if rx >= -(2**31) and rx <=(2**31)-1:
            return rx
        else:
            return 0

执行用时 :44 ms, 在所有 Python3 提交中击败了38.69%的用户

内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.23%的用户

好多知识点都忘了,这么简单的题目……python用的也不熟练,菜鸟互啄,困……明天起来继续看吧!

利用数组的切分:

a[开始截取位置:结束截取位置:步长] 包括开始截取位置字符,不包括结束截取位置字符。步长-1则代表反向截取

class Solution:
    def reverse(self, x: int) -> int:
        xa = abs(x)
        stra = str(xa)
        stra = int(stra[::-1])
        if x<0:
            stra = -stra
            return stra if stra >=-2**31 else 0
        return stra if stra <=2**31-1 else 0    

执行用时 :36 ms, 在所有 Python3 提交中击败了74.58%的用户

内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.23%的用户

需要熟练掌握一下基础知识点,不然很麻烦……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值