题目:
解题思路:首先判断输入的数字是否为0,若为0则return0,不为0则进行逆序。对于负数做单独处理,正数将其转化为字符串再转化为列表,进行逆序输出。
class Solution:
def reverse(self, x: int) -> int:
min,max=-2**31,2**31-1 #逆序后的数字范围判断
while x!=0:
if x<0:
x=x*-1 #将负数化为正数
lista=list(str(x)) #将正数转化为列表
lista.reverse()
number=int("".join([str(i)for i in lista])) #将列表转化为数字
number=number*-1
else :
lista = list(str(x))
lista.reverse()
number=int("".join([str(i)for i in lista]))
if(number<min or number>max):
return 0
else:
return number
return 0
if __name__ == '__main__':
s=Solution()
s.reverse(-123)
收获:
- 数字与列表的互相转化
不可直接使用list(123),因为数字是不可迭代对象
可以用以下方法
list(str(123))#先将数字转化为字符串再转化
#列表-->整数 lista=[1,2,3,4]
number=int("".join([for str(i) in lista]))
- 指数的表示 a的n次幂
#2^31
a^n = a**n
2**31