0007. Reverse Integer

Easy | Math | 16 ms (88.67%), 13.3 MB (90.96%)

Source: LeetCode - Reverse Integer GitHub: Solution / Performance

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

  • Pop and Push Digits via MOD % and DIV // operators

  • Check before Overflow

class Solution:
    def reverse(self, x: int) -> int:
        # (base case)
        if x == 0: return x
        
        # ==================================================
        #  Math                                            =
        # ==================================================
        # time  : O(log(n))
        # space : O(1)
        
        ans  = 0
        sign = 1 if x > 0 else -1
        x    = abs(x)
        
        while x:
            pop = x % 10
            x //= 10
            
            ans = ans*10 + pop
            if ans >= 2**31-1: return 0
            
        return sign * ans

Last updated