Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 2:
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.
Python代码实现:
class Solution:
def reverse(self, x):
if x >= 0:
rev = 0
while x != 0:
pop = x % 10
x //= 10
if rev > (2 ** 31 - 1) / 10 or (rev == (2 ** 31 - 1) / 10 and pop > 7):
return 0
if rev < -2 ** 31 / 10 or (rev == -2 ** 31 / 10 and pop < -8):
return 0
rev = rev * 10 + pop
return rev
else:
x = -x
rev = 0
while x != 0:
pop = x % 10
x //= 10
if rev > (2 ** 31 - 1) / 10 or (rev == (2 ** 31 - 1) / 10 and pop > 7):
return 0
if rev < -2 ** 31 / 10 or (rev == -2 ** 31 / 10 and pop < -8):
return 0
rev = rev * 10 + pop
return -rev