leetcode----反转整数

本文介绍了一种算法,用于翻转一个32位有符号整数的数字顺序。通过去除末尾的零,处理负数,并将每个数字存入数组再重组,实现了整数的逆序。同时,确保了结果在32位有符号整数的范围内。

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

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21
class Solution:
    def reverse(self, x: int) -> int:
        
        MAX_INT = 2**31-1
        MIN_INT = - 2**31
 
        #检查输入是否超过32位有符号整数的范围
        if x > MAX_INT or x < MIN_INT:
            return 0
        #将末尾的0去掉
        if x%10 == 0 and x != 0:
            while x%10 ==0:
                x = int(x/10)
        a = []
        y = x
        #将负数转换为正数,进行处理
        if x<0:
            x=-1*x
        #将每个值存入数组
        while x/10:
            a.append(int(x%10))
            x = int(x/10)
        sum = 0 
        #对数组中的值转为数值
        for i in range(len(a)):
            sum=sum+a[i]*10**(len(a)-i-1)
        #将负数还原
        if y<0:
            sum =-1*sum
        if sum > MAX_INT or sum < MIN_INT:
            return 0
        return sum

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值