Find the Next Larger Palindrome
Company: Uber
Role: Data Scientist
Category: Coding & Algorithms
Interview Round: Onsite
Quick Answer: This question evaluates proficiency in numeric and string manipulation, algorithmic thinking, and edge-case reasoning related to palindromic number generation.
Constraints
- 1 <= n < 10^18
- The returned palindrome must have no leading zeros
Examples
Input: (1,)
Expected Output: 2
Explanation: The next integer after 1 is 2, and every single-digit number is a palindrome.
Input: (9,)
Expected Output: 11
Explanation: After 9, the next palindrome is 11.
Input: (123,)
Expected Output: 131
Explanation: Mirroring gives 121, which is too small, so the middle is increased to produce 131.
Input: (808,)
Expected Output: 818
Explanation: 808 is already a palindrome, but the answer must be strictly larger, so the next one is 818.
Input: (1221,)
Expected Output: 1331
Explanation: 1221 is a palindrome with even length. The next larger palindrome is obtained by increasing the middle pair.
Input: (12932,)
Expected Output: 13031
Explanation: Mirroring gives 12921, which is too small. Incrementing the middle with carry leads to 13031.
Input: (999,)
Expected Output: 1001
Explanation: For numbers consisting only of 9s, the next palindrome has one more digit: 1001.
Hints
- Try building a palindrome by copying the left half of the number onto the right half.
- If that mirrored number is not strictly greater than `n`, increment the middle digit(s) and mirror again. Numbers like 9, 99, and 999 need special handling.