Files
leetcode/7-reverse-integer/7-reverse-integer.py
T

34 lines
949 B
Python

class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
MAX_32_VALUE = 2147483648
REVERSED_MAX_32_VALUE = 463847412
# Check negative
isNegative = False
if x < 0:
x = -x
isNegative = True
# Check if reversed is outside of [-2**31, 2**31 - 1]
if x > 10**9:
for i in range(1, 10):
xMod10i = x % (10**i)
reversedMax = REVERSED_MAX_32_VALUE % (10**i)
if xMod10i > reversedMax:
return 0
elif xMod10i < reversedMax:
break
# Reverse integer
reversedInt = 0
while x > 0:
reversedInt *= 10
reversedInt += x % 10
x = int(x / 10)
return -reversedInt if isNegative else reversedInt