leetcode7:反转整数

本文深入探讨了整数反转算法的实现细节,包括如何处理正负数、避免溢出问题,以及特殊情况如末尾为0的处理。通过Python代码详细解释了算法流程,适合初学者理解和掌握。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        a = list(str(x))
        if len(a) == 1:  # 判断是几位数
            return x  # 若一位数则不反转直接输出
        else:
            if a[0] == '-':  # 判断是否是负数
                b = a[1:]  # 将负号丢弃
                b.reverse()  # 然后反转
                b.insert(0, '-')  # 反转后再加上负号
            elif a[-1] == '0':  # 判断是否末尾是0
                b = a[:-1]  # 将0丢弃
                b.reverse()  # 再进行反转
            else:
                b = a  # 若前面两种情况都不是则直接赋值给b
                b.reverse()  # 反转
            result = int("".join(b))  #先将列表b转换成字符串b,再由字符串b转换成int型
            if (-2**31 <= result <=2**31-1):  # 判断反转后的数是否超出范围,若超出则返回0,反之返回反转的数
                return result
            else:
                return 0



print(Solution.reverse(Solution,123))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值