整数反转
题目描述#
难度中等
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
-231 <= x <= 231 - 1
解题步骤#
时间复杂度和空间复杂度都是。
class Solution:
def reverse(self, x: int) -> int:
s1 = "2147483648"
s2 = "2147483647"
nums = []
if x > 0:
flag = 1
else:
flag = -1
x = -x
while x != 0:
nums.append(x % 10)
x //= 10
n = len(nums)
if n == 10:
if x > 0:
for index, i in enumerate(nums):
if i > int(s2[index]):
return 0
elif i < int(s2[index]):
break
else:
for index, i in enumerate(nums):
if i > int(s1[index]):
return 0
elif i < int(s1[index]):
break
res = 0
for i in nums:
res *= 10
res += i
return flag * res
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步