7. Reverse Integer

Easy

Question

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.

Complexity

  • Time complexity: O(log_10(n))

  • Space complexity: O(1)

Code

def reverse(self, x: int) -> int:
    intmin = - 2 ** 31 #define min int in 32 bits
    intmax = -intmin - 1 #define max int in 32 bits
    positive = True if x > 0 else False #check sign
    x = x if positive else -x #make x temporarily positive
    res = 0
    while(x > 0):
        res = res * 10 + x % 10 
        x = x // 10
    res = -res if not positive else res #add sign for result
    if res < intmin or res > intmax: #check for int overflow
        return 0
    return res

Last updated