9. Palindrome Number

Problem:

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

Example 1:

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.

Example 3:

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

Follow up:

Coud you solve it without converting the integer to a string?

Solutions:

class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0)  return false;
        int reverse = 0;
        int val = x;
        while (val > 0) {
            int digit = val % 10;
            val = val/10;
            if (reverse > INT_MAX/10 || reverse == INT_MAX/10 && digit > INT_MAX % 10)  return false; // remember to check overflow!
            reverse = 10 * reverse + digit;
        }

        return reverse == x;
    }
};

results matching ""

    No results matching ""