Skip to main content

Palindrome Number

LeetCode 9 | Difficulty: Easy​

Easy

Problem Description​

Given an integer x, return true if x is a **palindrome**, and false otherwise.

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Constraints:

- `-2^31 <= x <= 2^31 - 1`

Follow up: Could you solve it without converting the integer to a string?

Topics: Math


Approach​

Mathematical​

Look for mathematical patterns or formulas. Consider: modular arithmetic, GCD/LCM, prime factorization, combinatorics, or geometric properties.

When to use

Problems with clear mathematical structure, counting, number properties.


Solutions​

Solution 1: C# (Best: 112 ms)​

MetricValue
Runtime112 ms
MemoryN/A
Date2017-07-16
Solution
public class Solution {
public bool IsPalindrome(int x) {
if (x < 0 || (x != 0 && x % 10 == 0))
{
return false;
}
int rev = 0;
while (x > rev)
{
rev = rev*10 + x%10;
x /= 10;
}
return (x==rev || x==rev/10);
}
}

Complexity Analysis​

ApproachTimeSpace
Solution$O(n)$$O(1) to O(n)$

Interview Tips​

Key Points
  • Start by clarifying edge cases: empty input, single element, all duplicates.
  • LeetCode provides 1 hint(s) for this problem β€” try solving without them first.
πŸ’‘ Hints

Hint 1: Beware of overflow when you reverse the integer.