9. Palindrome Number

Description

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

Constraints

Approach

  • GeeksforGeeks

  • ProgramCreek

  • YouTube

Examples

Input: 121

Output: true

Solutions

/**
 * Time complexity : O(log10(n)). We divided the input by 10 for every iteration, 
 *    so the time complexity is O(log10(n)).
 * Space complexity : O(1)
 */

class Solution {
    public boolean isPalindrome(int n) {
        if(n < 0 || (n % 10 == 0 && n != 0)) {
            return false;
        }
        int revertedNumber = 0;
        while(revertedNumber < n) {
            revertedNumber = (revertedNumber*10) + (n%10);
            n /= 10;
        }
        return (revertedNumber == n) || (n == revertedNumber/10);
    }
}

Follow up

  • Could you solve it without converting the integer to a string?

Last updated

Was this helpful?