2023年 第2周

2/6/2023 算法LeetCode

# 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindrome-number/ (opens new window)

var isPalindrome = function(x) {
    if(x === 0)
        return true
    if(x <= -1 || (x%10) === 0)
        return false
    const strX = `${x}`
    const strXLength = strX.length / 2
    if(strX.length%2) {
        return strX.slice(0,strXLength+0.5) === strX.slice(strXLength-0.5,strX.length).split("").reverse().join("")
    }else{
        return strX.slice(0,strXLength) === strX.slice(strXLength,strX.length).split("").reverse().join("")
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13

执行结果:
执行用时:132 ms , 在所有 JavaScript 提交中击败了92%的用户
内存消耗:50 MB, 在所有 JavaScript 提交中击败了48%的用户

起初直接想用字符串解决这个问题,将数字转字符串,取长度后半段反转对比。结果就是内存消耗太高了。 有空了,想想从数学方面入手解决这个问题。

Last Updated: 11/21/2023, 11:22:14 AM