本题比较简单,可以转换为字符串操作
class Solution:
def reverse(self, x: int) -> int:
if x == 0:#若输入为0,返回0
return 0
isNeg = False#标记输入是否为负数
tempstr = str(int(x))#转换为字符串
if tempstr [0] == '-':#若输入为负数,我们保留符号,只对纯数字部分进行反转
tempstr = tempstr[1:]
isNeg = True
resstr = tempstr[::-1]#反转操作
index = 0#获取反转后的纯数字部分中第一个不为0的位置
while resstr[index] == '0':
index += 1
resstr = resstr[index:]
if isNeg is True:
resstr = '-' + resstr#恢复负号
res = int(resstr)
return 0 if ((res > 2**31) or (res <-(2**31)-1)) else res#判断是否在要求范围