A Number After a Double Reversal - Problem

Reversing an integer means to reverse all its digits.

For example, reversing 2021 gives 1202. Reversing 12300 gives 321 as the leading zeros are not retained.

Given an integer num, reverse num to get reversed1, then reverse reversed1 to get reversed2. Return true if reversed2 equals num. Otherwise return false.

Input & Output

Example 1 — Number Without Trailing Zeros
$ Input: num = 526
Output: true
💡 Note: First reversal: 526 → 625. Second reversal: 625 → 526. Since 526 == 526, return true.
Example 2 — Number With Trailing Zero
$ Input: num = 1800
Output: false
💡 Note: First reversal: 1800 → 81 (trailing zeros lost). Second reversal: 81 → 18. Since 18 ≠ 1800, return false.
Example 3 — Single Digit
$ Input: num = 0
Output: true
💡 Note: First reversal: 0 → 0. Second reversal: 0 → 0. Since 0 == 0, return true.

Constraints

  • 0 ≤ num ≤ 106

Visualization

Tap to expand
Double Reversal Number Check INPUT Original Number (num) 5 2 6 100s 10s 1s Input Value num = 526 Property Check: No trailing zeros 526 % 10 != 0 ALGORITHM STEPS 1 First Reverse 526 --> 625 (reversed1) 526 --> 625 2 Second Reverse 625 --> 526 (reversed2) 625 --> 526 3 Compare Values reversed2 == num ? 526 == 526 4 Optimal Check num == 0 OR num % 10 != 0 FINAL RESULT Double Reversal Flow 526 625 526 num rev1 rev2 Output true 526 == 526 [OK] Numbers match! Key Insight: A number equals its double-reversed version if and only if it has no trailing zeros (or is zero itself). Optimal O(1) solution: return (num == 0) || (num % 10 != 0). Trailing zeros become leading zeros after first reversal, which are then dropped, causing the mismatch. TutorialsPoint - A Number After a Double Reversal | Optimal Solution
Asked in
Google 15 Amazon 8
29.2K Views
Medium Frequency
~5 min Avg. Time
824 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