我的第一种思路是反转整数,反转整数的思路其实有两种,一种是通过字符串反转,一种是整数反转,都需要注意判断反转前反转后的数字没有溢出。
第一种思路:
字符串反转:
class Solution:
def reverse(self,x):
if x > 2**32 - 1 or x < -(2**32 - 1):
return 0
flag = 0
if x < 0:
flag = 1
s = str(x)
l = list(s)
for i in l[::-1]:
if i == 0:
l.pop()
else:
break
l.reverse()
m = ''.join(l)
n = int(m)
if flag == 1:
n = -n
if n > 2**32 -1 or n < -(2**32 - 1):
return 0
return n
第二种思路:
反转整数:
class Solution:
def reverse(self,x):
if x > 2**32 - 1 or x < -(2**32 - 1):
return 0
temp = x
m = 0
while temp :
m = m * 10 + temp % 10
temp = temp / 10
if m > 2**32 -1 or m< -(2**32 - 1):
return 0
return m