leetcode7.整数反转
发布于 2021-04-17 02:25 ,所属分类:知识学习综合资讯
题目描述
题目描述
给一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例
输入:x = 123
输出:321
输入:x = -123
输出:-321
输入:x = 120
输出:21
输入:x = 0
输出:0
(左右滑动查看完整内容)
提示
-2**31<= x <= 2**31- 1
难度:简单
标签:数学
分析和题解
分析
1.先判断数字是否为0,为0直接返回0,就不需要进行后续的操作了;
2.数字不为0时,将int转换为str进行反转,负数只反转负号后面的内容;
3.反转后再转换成int,str转换成int 会自动把前面的0去掉,所以不用特殊处理了;
4.最后判断反转后的数字是否超过 32 位的有符号整数的范围,如果超过返回0,没超过就返回反转后的数字。
题解
class Solution:
def reverse(self, x: int) -> int:
if x == 0: return 0
elif x > 0:
res_str = str(x)[::-1]
else:
res_str = f'-{str(x)[:0:-1]}'
res = int(res_str)
if -2 ** 31 <= res <= 2 ** 31:
return res
else: return 0
(左右滑动查看完整代码)
相关资源