使用Python检查整数溢出不起作用

使用Python检查整数溢出不起作用,python,algorithm,Python,Algorithm,我正在经历一个编码挑战,我必须反转一个整数。如果整数只有一个数字,我将按原样返回整数。如果小于零,我将其反转,但保持符号完整。我必须检查整数溢出,以确保它在[−231, 231 − 1] 。以下是我的代码: def reverse(self, x: int) -> int: if x >=0 and x <= 9: return x elif x > 9 and x < (2**31): reve

我正在经历一个编码挑战,我必须反转一个整数。如果整数只有一个数字,我将按原样返回整数。如果小于零,我将其反转,但保持符号完整。我必须检查整数溢出,以确保它在
[−231,  231 − 1] 
。以下是我的代码:

def reverse(self, x: int) -> int:
    
    if x >=0 and x <= 9:
        return x
    
    elif x > 9 and x < (2**31):
        rever1 =  str(x)[::-1]
        return int(rever1)
    
    elif x < 0 and x > (-2**31):
        rever2 = str(x)[::-1]
        rever2 = rever2[:-1]
        rever2 = -1  * int(rever2)
        return rever2
    
    elif x <= (-2**31) or x >= (2**31):
        return 0
def反转(self,x:int)->int:
如果x>=0,x 9和x<(2**31):
混响1=str(x)[:-1]
返回整数(1)
elif x<0和x>(-2**31):
rever2=str(x)[:-1]
混响2=混响2[:-1]
混响2=-1*int(混响2)
返回混响2
elif x=(2**31):
返回0
我知道如何缩短此代码,因此目前效率低下是可以接受的。我只想知道为什么我的代码在
1534236469
中失败

尽管我非常感谢所有的帮助,但如果你告诉我代码失败的原因,而不是给我一个快速的解决方案,这对我的帮助会更大。这些挑战背后的全部要点是学习,因此如果有人只是给出答案,那么它就无法达到目的。

您检查的是输入值,而不是返回值。您给出的测试用例是“problem”类:输入的数字在范围内,但反之则不在范围内

您还需要检查混响1是否在范围内:

elif x > 9 and x < (2**31):
    rever1 = str(x)[::-1]
    return int(rever1)
elif x>9和x<(2**31):
混响1=str(x)[:-1]
返回整数(1)
可能是

elif x > 9 and x < (2**31):
    rever1 = str(x)[::-1]
    if rever1 < (2**31):
        return int(rever1)
    else:
        return 0
elif x>9和x<(2**31):
混响1=str(x)[:-1]
如果混响1<(2**31):
返回整数(1)
其他:
返回0
由于您计划适当缩短代码,因此我将不深入讨论这些细节。

您将检查输入值,而不是返回值。您给出的测试用例是“problem”类:输入的数字在范围内,但反之则不在范围内

您还需要检查混响1是否在范围内:

elif x > 9 and x < (2**31):
    rever1 = str(x)[::-1]
    return int(rever1)
elif x>9和x<(2**31):
混响1=str(x)[:-1]
返回整数(1)
可能是

elif x > 9 and x < (2**31):
    rever1 = str(x)[::-1]
    if rever1 < (2**31):
        return int(rever1)
    else:
        return 0
elif x>9和x<(2**31):
混响1=str(x)[:-1]
如果混响1<(2**31):
返回整数(1)
其他:
返回0

既然您计划适当地缩短代码,我就不谈这些细节了。

什么是
self
?这可能是因为反向整数将大于
2**31-1
?@Stef,这就是Leetcode结构的答案。它必须是一个类
解决方案
的方法。什么是
self
?这可能是因为反整数大于
2**31-1
?@Stef,这就是Leetcode结构的答案。它必须是类
解决方案的方法