Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
我的解法
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x >= 0:
a = [val for val in str(x)]
string = ''
for i in range(len(a))[::-1]:
string += a[i]
if int(string) > 2147483647:
return 0
else:
return int(string)
else:
a = [val for val in str(x)[1:]]
string = ''
for i in range(len(a))[::-1]:
string += a[i]
if int(string) > 2147483647:
return 0
else:
return 0-int(string)
别人的解法:
def reverse(x):
s = cmp(x, 0)
r = int(`s * x`[::-1])
print s,r
return s * r * (r < 2 ** 31)