Reverse Integer

Key Idea

Solution

class Solution:
    def reverse(self, x: int) -> int:
        # Inputs: Int
        # Outputs: Int
        # Description: Revrese an integer, if digit goes out of 32 bits return 0
        negative_indicator = False
        if x < 0:
            negative_indicator = True
            x *= -1

        # Reverse first
        reversed_x = int(str(x)[::-1])
        # Positive max is 31 bits
        if not negative_indicator:
            if len(bin(reversed_x)[2:]) > 31:
                return 0
            return reversed_x

        # Negative min can use up to 32 bits in magnitude
        # because -2**31 is allowed
        else:
            if len(bin(reversed_x)[2:]) > 31:
                return 0
            return -1 * reversed_x

Complexity