解决思路:
把数字先变为字符串,但是在此之前先判断是不是小于0,因为需要先把负号放在最前面,所以我加了个判断记录下负号存不存在,存在则在最后的时候加进去。因为python太强大了,可以利用for语句倒序把字符一个一个加入创建的空列表。只需在最后根据判断有负号就插入第0个位置,因为python自带的insert()会自动把后续的字符后移。当然这还是挺耗时的,虽然看不到操作,但是它会自己运行一步一步往后移。所以这只是最简单地参考。另外还可以优化下 就是大于0 小于10的可以直接输出。
class Solution:
def reverse(self, x):
# x=123456789 还需要判断正负
flage = True
if x<0:
flage = False
str_1 = str(x)
j=0
str_2 = []
for i in range(len(str_1)-1,-1,-1):
str_2.append(str(str_1[i]))
if flage:
if int("".join(str_2))>2**31:
return 0
else:
return int("".join(str_2))
else:
str_2.insert(0,'-')
if int("".join(str_2[:len(str_2)-1]))<(-2)**31:
return 0
else:
return int("".join(str_2[:len(str_2)-1]))