class Solution:
def reverse(self, x: int) -> int:
MIN, MAX = -231(2的31次方), 231(2的31次方) - 1
rev = 0
while x != 0 :
if rev < MIN//10 +1 or rev > MAX//10 :
return 0
digit = x % 10
#Python3 的取余运算在 x 为负数时也会返回 [0, 9) 以内的结果,因此这里需要进行特殊判断,这里要注意一点-116%10=4而不是等于6
if x < 0 and digit > 0:
digit -= 10
#同理,Python3 的整数除法在 x 为负数时会向下(更小的负数)取整,因此不能写成 x //= 10
x = (x - digit) // 10
rev = rev * 10 + digit
return rev
笔记:1、注意范围判断,限制了64位数,所以不能直接判断
2、Python3 的取余运算在 x 为负数时也会返回 [0, 9) 以内的结果,
因此这里需要进行特殊判断,这里要注意一点-116%10=4而不是等于6