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

    Example 1:

    1. Input: 121
    2. 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?

    Runtime: 252 ms, faster than 51.01% of JavaScript online submissions for Palindrome Number.

    /**
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
        if (x < 0) {
            return false;
        }
        x = x.toString();
        const mid = x.length / 2;
        let left, right;
        if (mid === ~~mid) {
            left = mid - 1;
            right = mid;
        } else {
            left = ~~mid;
            right = ~~mid;
        }
        const leftString = x.substring(0, left + 1);
        const rightString = x.substring(right, x.length);
        return leftString === rightString.split('').reverse().join('');
    };
    

    Runtime: 224 ms, faster than 99.51% of JavaScript online submissions for Palindrome Number.

    /**
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
        if (x < 0) {
            return false;
        }
        const result = [];
        while(x) {
            result.push(x % 10);
            x = ~~(x / 10);
        }
        let i = 0;
        let j = result.length - 1;
        while(i < j) {
            if (result[i] !== result[j]) {
                return false;
            }
            i++;
            j--;
        }
        return true;
    };