每日一道算法题之LeetCode7
LeetCode7 整数反转
题目:https://leetcode-cn.com/problems/reverse-integer/
解题思路如下:
1. 先判断x是否为0,若为0,则直接返回0.
2. 判断x的正负,若为负,则绝对值处理,转换为正数。此处采用标识符flag应对正负的情况。
3. 把x转换为字符串,再转为列表。
4. 接着把列表反转,再通过拼接,转换为数字。
5. 最后判断反转后是否溢出。
1 class Solution: 2 def reverse(self, x: int) -> int: 3 if x == 0: 4 return 0 5 maxn = 2**31-1 6 minn = -2**31 7 flag =1 8 if x < 0: 9 flag = -1 10 x = abs(x) 11 s = list(str(x)) 12 s.reverse() 13 ss = int(''.join(s)) 14 ss *= flag 15 if ss >maxn or ss < minn: 16 return 0 17 return ss
注:
列表的reverse()没有返回值
拼接join()函数的参数为序列