LeetCode: Palindrome Number

LeetCode: Palindrome Number 1

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

LeetCode Problem



Input: 121
Output: true
Example 2:

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


This problem is easy, according to problem description:

If \(input < 0\), it must not be palindrome number.

If \(input < 10\), it’s length is 1, and it must be a palindrome number.

Otherwise, we reverse the number by digits, and check whether equal with origin number.

Note the edge case of integer overflow when reversing a number:

Line 7: Char 23: runtime error: signed integer overflow: 746384741 * 10 cannot be represented in type 'int' (solution.cpp)

We need to avoid this in the loop.

An alternative solution is converting an integer into string, then check str with reverse(str).


class Solution {
    int reverse(int x) {
        if(x == 0) return 0;
        int res = 0;
        for(; x; x /= 10) {
          int n = (x % 10);
          if (res >= INT_MAX/10 - n )
            return -1;
          res = res * 10 + n;
        return res;
    bool isPalindrome(int x) {
        if(x<0) return false;
        return x == reverse(x);


class Solution {
  public boolean isPalindrome(int x) {
    if (x < 0) {
      return false;
    int n = x;
    int rev = 0;
    while (n > 0) {
      int t = n % 10;
      if(rev >= Integer.MAX_VALUE/10 + n%10)
         return false;
      rev = 10 * rev + t;
      n /= 10;
    return rev == x;


In Python, str(x) will convert x into string, with extended slice index, s[start:stop:step] can be used for fetch substring of a string.

And s[::-1] reverse string using slicing, -1 denotes starting from end and stop at the start, hence reversing string.

class Solution:
    def isPalindrome(self, x: int) -> bool:
        return str(x) == str(x)[::-1]

Preparing for an interview? Check out this!


Don't miss out!
Subscribe To Newsletter

Want to be better at coding and CS ?

Programming tutorials

Career advice and tips


It's Free!

Invalid email address
Last Updated on

Leave a Reply

Your email address will not be published. Required fields are marked *