LeetCode刷题日记(简单)- 回文数

95 阅读2分钟

刷题日记-简单-回文数

前言

一个小伙伴说希望成立一个刷题小组,本就着富强、民主、文明、和谐,倡导自由、平等、公正、法治,倡导爱国、敬业、诚信、友善,积极培育社会主义核心价值观,我答应他了。

因为也没有刷过题,比较菜。然后就看了下别人家的孩子怎么刷题的,这里附上链接。

-力扣传送门-

朝花夕拾 - 2019 总结(附 283 道 LeetCode 题解)

我是如何刷 LeetCode 的?

题目描述:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

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

  • 例如,121 是回文,而 123 不是。

示例

输入: x = 121
输出: true
输入: x = -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
输入: x = 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
    /**
 * @param {number} x
 * @return {boolean}
 * 思路,整数转为字符串,然后反转字符串,检查反转字符串是否相同
 *  转成数组两头遍历,相同返回真,不同则false
 */
 
var isPalindrome = function(x) {
    let numberStringArr = x+"";
    let length = numberStringArr.length;
    let len =  length/2
    let res = true
    for(let i = 0;i<len;i++){
        if(numberStringArr[i]!==numberStringArr[length-1-i]){
            return  res = false
        }
    }
    return res
};

image.png

太菜了。看看别人怎么写的

答案一:

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
      return ( x+'').split('').reverse().join('')==x+''
      
};

答案二:

function overTurn(x)
{
    // 利用回文数左右对称的原理,即将回文数翻转后仍等于未翻转时数值

    // 转换为字符串
    let xString=x.toString()
    // 翻转字符串存放变量
    let overTurnString=''
    // 翻转字符串
    for(let item of xString)overTurnString=item+overTurnString
    // 如果翻转后仍等于翻转前则为回文数,否则不为。
    return xString==overTurnString
}

答案三:

/**
 * @param {number} x
 * @return {boolean}
 */ 
var isPalindrome = function(x) {
    if(x<0){
        return false
    }else{
        x=x.toString().split('')
        if(x.toString()===x.reverse().toString()){
            return true
        }else{
            return false
        }
    }
};