音乐播放器
sola的小屋
 
文章 标签
17

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...
总访问量:  |   访问人数:

Leetcode每日一题:7. 整数反转

7. 整数反转

题目地址https://leetcode.cn/problems/reverse-integer/

题目内容

中等

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

-2^31 <= x <= 2^31 - 1

解题思路

先正负判断,只考虑数值,然后将数取余倒过来,进行迭代,时间复杂度O(n),空间复杂度O(n)

我的解答

class Solution:
    def reverse(self, x: int) -> int:
        if x <0:
            x_p = abs(x)
            s = str(x_p)
            n = len(s)
            sum_w=0
            while n>0:
                high=x_p%10
                x_p=x_p//10
                sum_w=sum_w*10+high
                n=n-1
            sum_w=-sum_w
        
        else:
            x_p = x
            s = str(x_p)
            n = len(s)
            sum_w=0
            while n>0:
                high=x_p%10
                x_p=x_p//10
                sum_w=sum_w*10+high
                n=n-1
        
        if sum_w<(-2)**31 or sum_w>2**31-1:
            sum_w=0

        return sum_w