就这个题也不用多说什么吧。这个算法的时间复杂度是O(logx),x中大概有log10x个数字,空间复杂度是O(N)不知道为什么他们都写O(1),讲道理翻转字符串是要占用空间的,可能是因为不需要额外的吧。
python:
class Solution:
def reverse(self, x: int) -> int:
if x == 0:
return 0
str_x = str(x)
sign = 1
if str_x[0] == "-":
sign = -1
str_x = str_x[1:]
reversed_x = str_x[::-1]
i = 0
while i < len(reversed_x) and (reversed_x[i] == "0"):
i += 1
partial_x = reversed_x[i:]
res = sign * int(partial_x)
if res < - 2**31 or res > 2**31-1:
return 0
else:
return res
PREVIOUSlc007.整数反转
NEXTlc679.24点游戏