整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if -10 < x < 10:
return x
str_x = str(x)
if str_x[0] != "-":
str_x = str_x[::-1]
x = int(str_x)
else:
str_x = str_x[:0:-1]
x = int(str_x)
x = -x
return x if -2147483648 < x < 2147483647 else 0
关于切片必不可少的知识:
举例
li = [0, 1, 2, 3, 4, 5, 6, 7, 8]
li[-1:]: [8]
li[:-1]: [0, 1, 2, 3, 4,
5, 6, 7] li[0:2]: [0, 1]
解释:
str(n)[::-1]
#[::1]中省略起止位置,步进为-1
python中步进为正,从左往右取,步进为负,从右往左取
str(n)[::-1]实现字符串翻转
[-1] [:-1] [::-1] [n::-1]都是python中切片的使用方法。
**
- [-1]:获取最后一个元素,类似于matlab中的end;
- [:-1]:除了最后一个元素,获取其他所有的元素;
- [::-1]:对第一个到最后一个元素进行倒序之后取出;
- [n::-1]:对第一个到第n个元素进行倒序后取出。
**
参考:https://blog.csdn.net/Vince_ZHU/article/details/107602135?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control
https://zhuanlan.zhihu.com/p/79541418
剩下两道题明天更,明天休息~