声明:
如标题所示,因本人为AI路上的新手,文章仅用于辅助个人的整理记忆,理解难免有偏差之处,都是个人拙见,如给其他同僚造成困扰,还请见谅,非常非常非常欢迎私信共同讨论,共同进步
题目描述:
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
少废话,上代码:
class Solution:
def reverse(self, x: int) -> int:
s = str(x)
ans = ""
for i in reversed(s):#直接全部反转
ans += i
if ans[-1] == "+":
ans = ans.replace("+", "")
ans = int(ans)
if ans[-1] == "-":
ans = ans.replace("-", "")
ans = -int(ans)
ans = int(ans)#当输入是一个无符号数时,需进行取整操作,再进行下面比较
if ans >= (2 ** 31) - 1:
ans = 0
if ans <= -(2 ** 31):
ans = 0
return ans
时间空间复杂度如下:
- Runtime: 24 ms, faster than 93.62% of Python3 online submissions for Reverse Integer.
- Memory Usage: 12.6 MB, less than 100.00% of Python3 online submissions for Reverse Integer.