LeetCode整数反转问题

题目:
在这里插入图片描述

解题思路:首先判断输入的数字是否为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)

收获:

  1. 数字与列表的互相转化

不可直接使用list(123),因为数字是不可迭代对象
可以用以下方法

list(str(123))#先将数字转化为字符串再转化
#列表-->整数 lista=[1,2,3,4]
number=int("".join([for str(i) in lista]))
  1. 指数的表示 a的n次幂
#2^31
a^n = a**n 
2**31
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值