算法题目:
python3代码
class Solution: def reverse(self, x): """ :type x: int :rtype: int """ tmp =[] if isinstance(x, int): if x > 0: index = len(str(x)) num=str(x) for i in range(0, index): tmp.append(num[i]) tem = int(''.join(tmp[::-1])) # print(type(tem)) if tem > (2**31-1): return 0 return tem if x < 0: num = str(x) index = len(num) for i in range(0, index): tmp.append(num[i]) tem = int(''.join(tmp[:0:-1])) result = -tem if result < (-2 ** 31): return 0 return result if x==0: return 0
总结思路及知识点:
1.题目要求:32位有符号的整数,进行反转
思路:
(1)分情况处理 正整数、负整数、0-9的数字
(2)输入参数为int 类型,返回值也为int类型
(3)数字没有反转的方法,先将int类型的数字转换为字符串,并将其存放到预先定义的空列表中,利用列表的切片功能,对其反转
(4)注意返回值的范围问题
2.知识点
(1)数字-->字符串 字符串-->列表
(2)for i in range (0,len(nums))
(3)字符串拼接 ‘-’+int型的整数 、-123
(4)列表的反转--切片
切片具体知识点,参考https://blog.csdn.net/xpresslink/article/details/77727507
通常一个切片操作要提供三个参数 [start_index: stop_index: step]
start_index是切片的起始位置
stop_index是切片的结束位置(不包括)
step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。