Leetcode刷题: 回文数

这是我参与新手入门的第3篇文章

前言

今天,突然发现是个周五,那种周五的惰性就突然来了。。。
所以,无心写我的bug了,就来leetcode刷个题?
本来想随机刷题,然后,嗯,leetcode真给我面子,我连续点了几次随机一题,
。。。
嗯,一题比一题难,后来连题目我都看不明白了,嗯,不知道大家是不是都如此,
嗯,我应该是多想了,应该是就我这颗小白菜是这样的把。
于是,我点击了难度选择,-> 简单,嗯,就这样,刷新了列表,
挑一道看着最疑惑的题目,嗯,就它了,
--> 回文数 (是自己太菜了,光看题目,不知道这是个啥数,所以,点击进入了。)
复制代码

题目

这题的题目是这样描述的:

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

很喜欢这样的题目,解释的很清楚,不至于让我看不懂题目是啥,哈哈****(没办法,毕竟自己是个小白菜)

我的思路

看懂了题目,回文数的判断,我的解读,回文数就像是图形中的中心对称一样,
对折之后都是完全比对的,于是,我的大脑就开始慢慢启动。
首先,要排除一些特别的,比如,0,100,110,120这种,然后我就开始其它数的规律。
然而,没发现这些数字的规律,罢了,突然脑袋里一闪,出现了一个string,嗯
所以,我就开始了toStirng的历程,想到了,变成字段串,我去截取掉中间的哪个,
然后左右俩数组一致不就是了吗?
后来,我像个智商不太高的人一样,真的截取了中间的数字,
但是又遇到了问题,我用split截取,那岂不是不一定就是俩数组,可能是很多,,,
嗯,经检验,上述失败,后来我突然脑袋又一闪,
嗯?为啥要截取成左右俩数组,我直接反转比对不好吗? reverse它不香吗?



于是,我的答案有了~~·
复制代码

我的答案:


/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    if(x === 0) {
        return true
    } else if(x < 0 || x % 10 === 0) {
        return false
    } else {
        var numberReStr = x.toString().split('').reverse()
        var newNum = numberReStr.join('')
        return x.toString() === newNum
    }
    
};
复制代码

嗯,成功。。。但是好像不太简便,嗯,我这大脑袋也想不到别的了,就这样提交了。嗯

总结:

本题属于简单题,主要用到的知识点也很少:
1.数字转变字符串,1213.toString()(或者String('23213')), 
2. 字符串变数组 split 
3. 数组反转 reverse 
4. 数组变字符串 join
复制代码

都是基础知识,但是最初我没想到,所以,基础知识很重要。加油吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享