Question
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: \([−2^{31}, 2^{31} − 1]\). For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
Solution
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x == 0:
return x
elif x > 0:
sign = 1
else:
sign = -1
x = -1 * x
res = 0
while x != 0:
digit = x % 10
x //= 10
res = res * 10 + digit
res *= sign
if -1 * 2 ** 31 <= res <= 2 ** 31 - 1:
return res
else:
return 0