2019-10-23
leetcode: 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
首先,反转整数需要考虑两点,一是是否有负号,有符号需要把符号放到最前面,二是末尾有没有0,有0需要去掉,因为数字首位是不能为零的。
考虑到python取模10时结果会是正数,所以把数字转为字符处理更为方便
另外,题设假设环境只能存储得下32位int整型数字,python不需要考虑数字长度,所以我们直接用if判断数字大小
代码如下:
1 | class Solution: |
注意到其中用了[len(str_x)-1::-1],意义是从len(str_x)开始,以-1递减的方式截取,达到反取的作用,第二位不写默认是0
lstrip方法,表示截取最左边的某个字符,多个重复全部截取
rstrip方法同上不过是截取右边
评论大佬中也有不处理为字符串的方法,就是对数字做取余处理,这里贴一下代码以供学习:
1 | class Solution: |
想起樱木花道的经典台词:安西教练,你最光荣的时候是什么时候,是在日本国家队的时候吗?而我,只有现在了!
菜鸟坚持一天至少一篇,先从简单起,慢慢来吧。