LeetCode简单-Python-(7)整数反转

整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例1:

输入: 123
输出: 321

示例2:

输入: -123
输出: -321

示例3:

输入: 120
输出: 21

注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解题思路:

先把数分为正数和负数两个区间,再分别进行溢出的判断:
1、如果给定的数大于等于0,将数转化为字符串再进行反转再转换为整数

  • 若大于231,则返回0
  • 否则,返回反转后的数

2、如果给定的数小于0,先取绝对值,再转化为字符串再进行反转再转换为整数

  • 因为进行了取绝对值,所以若绝对值大于2^31,则返回0
  • 否则,返回(-反转后的数)

代码:

class Solution:
    def reverse(self, x: int) -> int:
        if x>=0:
            x=int(str(x)[::-1])
            if x>pow(2,31):
                return 0
            else:
                return x
        else:
            x=int(str(abs(x))[::-1])
            if x>pow(2,31):
                return 0
            else:
                return -x

在这里插入图片描述
注:
其中用到的知识点
1、pow()函数:里面可以有两个或三个参数

  • pow(x,y):表示x的y次幂
>>>pow(2,4)
16
  • pow(x,y,z):表示x的y次幂除以z的余数
>>>pow(2,4,5)
1

2、Python切片
Python中符合切片并且常用的有:列表,字符串,元组
下面以列表为例解释一下
[start : end : step]

  • start:切片的起始位置
  • end:切片的结束位置(不包括在内)
  • step:步长间隔,可以不提供,默认是1

步长为正表示正序

>>> list=[0,1,2,3,4,5]

>>> print(list[:])			#默认全部输出
[0, 1, 2, 3, 4, 5]

>>> print(list[0:3])		#输出索引为0-3但不包括3
[0, 1, 2]

>>> print(list[:3])			#0可以省略
[0, 1, 2]

>>> print(list[0:5:2])		#默认步长是1,改为2
[0, 2, 4]

>>> print(list[0:-1])		#负数表示从结尾开始
[0, 1, 2, 3, 4]

>>> print(list[-1:])		#倒数第一个到结尾
[5]

>>> print(list[-3:-1])		#倒数第3个到倒数第1个,不包括倒数第1个
[3, 4]

>>> print(list[3:2])		#start比end大无输出
[]

>>> list[2:2]=['a','b']		#插入
>>> print(list)
[0, 1, 'a', 'b', 2, 3, 4, 5]

>>> list[0:2]=['a','b']		#替换
>>> print(list)
['a', 'b', 2, 3, 4, 5]

>>> del list[2:4]			#删除
>>> print(list)
[0, 1, 4, 5]

步长为负表示倒序

>>> list=[0,1,2,3,4,5]

>>> print(list[::-1])	#从结尾开始,翻转
[5, 4, 3, 2, 1, 0]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值