Skip to content

7. Reverse Integer

Description

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 \([-2^{31}, 2^{31} - 1]\), then return 0.

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

Example 1:

Input: x = 123
Output: 321

Example 2:

Input: x = -123
Output: -321

Example 3:

Input: x = 120
Output: 21

Constraints:

  • \(-2^{31} <= x <= 2^{31} - 1\)

Solutions

I Math

Complexity:

  • Time complexity: \(O(n)\), where \(n\) is the number of digits in \(x\).
  • Space complexity: \(O(1)\).
func reverse(x int) int {
    num := 0
    for ; x != 0; x /= 10 {
        num = num*10 + x%10
    }

    if num > 1<<31-1 || num < -1<<31 {
        return 0
    }
    return num
}