0009 - Palindrome Number

0009 - Palindrome Number

Given an integer x, return true if x is palindrome integer. An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not.

Examples:

Input: x = 121 Output: true

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.

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

Input: x = -101 Output: false

Constraints:

-231 <= x <= 231 - 1

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

Java Solution

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0) return false;
        int original = x;
        long reverse = 0;
        
        while(x != 0) {
            reverse = x%10 + reverse*10;
            if (reverse > Integer.MAX_VALUE || reverse < Integer.MIN_VALUE) {
                return false;
            } else {
                x /= 10;
            }
        }
        return original == reverse;
    }
}

Last updated