Palindrome Number

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.

Solution: Reverse integer

Compare the reversed number and the target number

    bool isPalindrome(int x) {
        if (x < 0) return false;

        int reverseX = 0, temp = x;
        while (temp != 0) {
            reverseX = reverseX*10 + temp%10;
            temp /= 10;
        }
        return reverseX == x;
    }

Solution: Using Stack

    bool isPalindrome(int x) {
        if (x < 0) return false;

        stack<int> s;
        int temp = x;
        while (temp != 0) {
            s.push(temp%10);
            temp /= 10;
        }

        while (!s.empty()) {
            if (s.top() != x%10) return false;
            s.pop();
            x /= 10;
        }
        return true;
    }

results matching ""

    No results matching ""