给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
需要判断是否超出int
同时需要注意注意注意python中的负数取余和C等语言的不同:python中-13%10等于7,而非-3。
def reverse(self, x: int) -> int:
rev = 0
minint = -pow(2,31)
maxint = pow(2,31)-1
while x!=0:
if x < 0:
pop = x%10
if pop != 0:
pop = x%10-10
else:
pop = x%10
x = int(x/10)
if rev > maxint/10 or (rev == maxint / 10 and pop > 7): return 0
if rev < minint/10 or (rev == minint / 10 and pop < -8): return 0
rev = rev * 10 + pop;
return rev