一、题目要求
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1],就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
二、题解与答案
将整数变为字符串,如果为正数,直接翻转;如果为负数,翻转到符号位后一位再加上符号即可,具体代码如下:
class Solution:
def reverse(self, x: int) -> int:
if(x<0):
answer = int(str(x)[0]+str(x)[-1:0:-1])
else:
answer = int(str(x)[::-1])
if(-1*2**31<answer<2**31-1):
return answer
else:
return 0
另一种返回方法:
class Solution:
def reverse(self, x: int) -> int:
if(x<0):
answer = int(str(x)[0]+str(x)[-1:0:-1])
else:
answer = int(str(x)[::-1])
return answer if(-1*2**31<answer<2**31-1) else 0
可以看出,第二种返回方式所需时间要更长。