3783. Mirror Distance of an Integer

  • Math
TIME
O(log n)
SPACE
O(1)
problem on leetcode ↗source on github ↗

Intuition

Reverse the digits of n, then compute the absolute difference.

Solution

Reverse Function

Two approaches:

String-based:

reverse = int(str(n)[::-1])

Mathematical:

def reverse(n):
    result = 0
    while n > 0:
        result = result * 10 + n % 10
        n //= 10
    return result

Both handle leading zeros correctly (e.g., 10 → 01 → 1).

Final Answer

return abs(n - reverse(n))

Complexity

  • Time: O(d) where d = number of digits ≈ log₁₀(n)
  • Space: O(1) or O(d) for string approach

Edge Cases

  • Palindrome numbers → distance = 0
  • Numbers ending in 0 (10, 100, 120) → reverse has fewer digits
  • Single digit → distance = 0

Code

class Solution:
    def mirrorDistance(self, n: int) -> int:
        """
        3783. Mirror Distance of an Integer
        Time: O(log n)
        Space: O(1)
        """
        reverse_n = int(str(n)[::-1])
        return abs(n - reverse_n)