阅
Leetcode每日一题:7. 整数反转
7. 整数反转
题目内容
中等
给你一个 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
赏