Tcdian / keep

今天不想做,所以才去做。
MIT License
5 stars 1 forks source link

9. Palindrome Number #205

Open Tcdian opened 4 years ago

Tcdian commented 4 years ago

9. Palindrome Number

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

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

Tcdian commented 4 years ago

Solution

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    if (x === 0) {
        return true;
    }
    if (x < 0 || x % 10 === 0) {
        return false;
    }
    let reverseNum = 0;
    while(x > reverseNum) {
        reverseNum = reverseNum * 10 + x % 10;
        x = Math.floor(x / 10);
    }

    return x === reverseNum || x === Math.floor(reverseNum / 10);
};
function isPalindrome(x: number): boolean {
    if (x === 0) {
        return true;
    }
    if (x < 0 || x % 10 === 0) {
        return false;
    }
    let reverseNum = 0;
    while(x > reverseNum) {
        reverseNum = reverseNum * 10 + x % 10;
        x = Math.floor(x / 10);
    }

    return x === reverseNum || x === Math.floor(reverseNum / 10);
};