lc007.整数反转

 

题目链接

就这个题也不用多说什么吧。这个算法的时间复杂度是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