Sum of Number and Its Reverse - Problem
Sum of Number and Its Reverse presents an intriguing mathematical puzzle. Given a non-negative integer num, you need to determine if num can be expressed as the sum of any non-negative integer and its reverse.

For example, consider num = 443. We can express this as 181 + 181 (where 181 reversed is also 181), or as 205 + 238 (where 238 reversed is 832, but let's check: 205 reversed is 502, and 205 + 502 = 707, not 443). The key insight is that we need to find any number x such that x + reverse(x) = num.

Your task is to return true if such a number exists, false otherwise. This problem tests your understanding of number manipulation and mathematical reasoning.

Input & Output

example_1.py โ€” Basic Case
$ Input: num = 443
โ€บ Output: true
๐Ÿ’ก Note: We can express 443 as 218 + 812, where 812 is 218 reversed (wait, that's 1030, let me recalculate). Actually, 443 = 181 + 262, where 262 is close but not exactly 181 reversed. Let me find the correct pair: 443 can be written as 218 + 225, but 225 โ‰  reverse(218). The correct answer: 443 = 234 + 209, where reverse(234) = 432, so 234 + 432 = 666 โ‰  443. Actually, let's verify: 181 + reverse(181) = 181 + 181 = 362. We need to find x such that x + reverse(x) = 443.
example_2.py โ€” Palindrome Case
$ Input: num = 181
โ€บ Output: true
๐Ÿ’ก Note: 181 can be expressed as the sum of any palindromic number that when added to itself equals 181. However, since 181 is odd, we need 90.5 + 90.5, but we need integers. Let's check: we can have 90 + 91 = 181, and reverse(90) = 09 = 9, reverse(91) = 19. So 90 + 9 = 99 โ‰  181. Actually, we can verify that 163 + reverse(163) = 163 + 361 = 524 โ‰  181. The correct approach is to find that 108 + reverse(108) = 108 + 801 = 909 โ‰  181. Let me recalculate: we need to systematically check.
example_3.py โ€” Small Number
$ Input: num = 0
โ€บ Output: true
๐Ÿ’ก Note: 0 can be expressed as 0 + reverse(0) = 0 + 0 = 0. This is trivially true.

Visualization

Tap to expand
๐Ÿ” The Number Detective Case: Target = 443205Suspect #205Mirror502Mirror Image205 + 502=707โ‰ 443โŒ Case #205 failed: 707 โ‰  443๐Ÿ” Continue investigating other suspects...โœ… Eventually find the culprit!
Understanding the Visualization
1
Set Up Investigation
We have our target number and need to find if any number plus its reverse equals it
2
Check Each Suspect
Starting from 0, we test each number as a potential candidate
3
Mirror Test
For each candidate, we create its mirror image (reverse digits)
4
Solve the Case
If candidate + mirror = target, we found our answer!
Key Takeaway
๐ŸŽฏ Key Insight: We can solve this systematically by checking each number from 0 to our target. The search space is bounded, making brute force feasible for reasonable input sizes.

Time & Space Complexity

Time Complexity
โฑ๏ธ
O(n ร— log n)

We iterate through n numbers, and for each number, reversing takes O(log n) time

n
2n
โšก Linearithmic
Space Complexity
O(1)

We only use a constant amount of extra space for variables

n
2n
โœ“ Linear Space

Constraints

  • 0 โ‰ค num โ‰ค 105
  • The input is always a non-negative integer
  • You need to find if any non-negative integer x exists such that x + reverse(x) = num
Asked in
Google 15 Amazon 12 Microsoft 8 Meta 6
28.5K Views
Medium Frequency
~15 min Avg. Time
890 Likes
Ln 1, Col 1
Smart Actions
๐Ÿ’ก Explanation
AI Ready
๐Ÿ’ก Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen