题目自己去官网看吧!
主要是这几点
1. 我们要保证数字翻转
2. 保证前后符号位不发生变化
3. 保证我们处理后的数据在-2147483648~2147483648范畴内
我刚看到就突然想到使用str来处理此问题,不通过数学方式的计算,直接用文本去拼接
最后结果是内存消耗较为严重,13.6MB,目测全部都是string字符和list占用的
接下来优化,试着用Number去处理
class Solution: # -2147483648~2147483648 def reverse(self, x: int) -> int: xstr = str(x) result = [] up = False if(x < 0): up = True xstr = xstr.strip('-') length = len(xstr) for i in range(length): result.append(xstr[length - i - 1]) data = int('-' + ''.join(result) if up else ''.join(result)) return data if data < 2147483648 and data > -2147483648 else 0 if __name__ == "__main__": solution = Solution() rw = solution.reverse(1534236469) print(rw)