【python】【leetcode】【算法题目7—Reverse Integer】

本文介绍了一个简单的算法,用于将整数进行反转,并考虑了以0结尾及溢出等情况。使用Python实现,通过字符串转换和切片操作完成反转。

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

 

一、题目描述

题目原文:

Reverse digits of an integer.

(将一个整数反转输出)

举例:

Example1: x = 123, return 321
Example2: x = -123, return -321

注意:

If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.

(要考虑数字以0结尾的情况)

Did you notice that the reversed integer might overflow?

Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

(我们要考虑溢出的情况:假设为32为整数(-2^31~2^31-1 即:-2147483648到2147483647),反转后结果溢出时返回0)

二、题目分析

思路:将数字转化为字符串列表的形式表示,然后用列表的切片操作:[ : : -1] 或者 列表函数str.reverse() 进行反转,反转后对值溢出判定即可。

本文用列表切片的方式进行反转操作。

三、Python代码

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x >= 0:
            result = int(str(x)[::-1])
            if result > 2147483647:
                return 0
            else:
                return result
        else:
            x = 0 - x
            result = 0 - int(str(x)[::-1])
            if result < -2147483648:
                return 0
            else:
                return result
 

 

四、其他

题目链接:https://leetcode.com/problems/reverse-integer/

Runtime: 56 ms

想法不够优化,欢迎大家留言交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值