Reverse Number Digits

Learn how to reverse the digits of a number using string reversal and mathematical approaches. A classic coding interview problem with integer overflow considerations.

Algorithms

Detailed Explanation

Reversing Number Digits

Reversing the digits of a number is a classic algorithmic problem that can be solved with either string reversal or pure mathematics.

String Approach

Convert to string, reverse, convert back:

function reverseNumber(n) {
  const sign = Math.sign(n);
  const reversed = parseInt([...Math.abs(n).toString()].reverse().join(""));
  return sign * reversed;
}

reverseNumber(12345);  // 54321
reverseNumber(-789);   // -987
reverseNumber(1200);   // 21 (leading zeros dropped)

Mathematical Approach

Extract digits one at a time using modulo and division:

function reverseNumber(n) {
  const sign = Math.sign(n);
  let num = Math.abs(n);
  let result = 0;

  while (num > 0) {
    result = result * 10 + (num % 10);
    num = Math.floor(num / 10);
  }

  return sign * result;
}

Trace Example

Reversing 1234:

Step 1: result = 0 * 10 + 4 = 4,    num = 123
Step 2: result = 4 * 10 + 3 = 43,   num = 12
Step 3: result = 43 * 10 + 2 = 432,  num = 1
Step 4: result = 432 * 10 + 1 = 4321, num = 0

Integer Overflow (LeetCode Classic)

In languages with fixed-size integers (C, Java), reversed numbers can overflow:

Input:  1534236469
Reversed: 9646324351 → exceeds 32-bit integer max (2,147,483,647)

The LeetCode problem requires returning 0 if the reversed number overflows:

function reverse(x) {
  const MAX = 2**31 - 1;
  const MIN = -(2**31);
  const sign = Math.sign(x);
  let num = Math.abs(x);
  let result = 0;

  while (num > 0) {
    result = result * 10 + (num % 10);
    num = Math.floor(num / 10);
  }

  result *= sign;
  return (result > MAX || result < MIN) ? 0 : result;
}

Edge Cases

  • Negative numbers: Preserve the sign, reverse the digits
  • Trailing zeros: 1200 → 21 (leading zeros in reversed number are dropped)
  • Single digit: Returns the same number
  • Zero: Returns 0

Use Case

Number digit reversal is one of the most popular easy-level coding interview problems on LeetCode (#7), HackerRank, and similar platforms. It tests understanding of modular arithmetic, integer overflow handling, and edge case thinking.

Try It — Reverse Text

Open full tool