力扣刷题:9. 回文数(js)

题目:

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

示例 1:

输入: 121
输出: true
示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

难度:简单

题解:

解法一:流氓解法

首先将整数通过 “tostring()"方法转换成字符串,然后“.split("")”方法转换成字符串数组,最后 “.reverse().join("")”得到反转后的整数,将其与初始整数对比即可

   var XxL = x.toString().split("").reverse().join('');
      if(XxL==x){
        return true
      }else{
        return false
      }

ps:上述代码写法是个人习惯,其实可以简化成

 return x ==Number(x.toString().split("").reverse().join(''))

解法二:正常版(不将整数转为字符串)

 

var isPalindrome = function(x) {
 var newx = 0;
 var xTmp = x;
 //正常版
      //x大于0,x的个位数不能为0,因为整数的最高位不能为0
      if (x < 0 || (x % 10 == 0 && x != 0)) return false;
      while (xTmp > 0) {
        //定义变量存储x%10后的值
        let tmp = xTmp % 10;
        newx = newx * 10 + tmp;
        //此时,x最低位的数值已经存储到新的变量中,那么在x里这一位就要去掉
        xTmp = (xTmp - tmp) / 10;
      }
      return newx == x;
};

 

posted @ 2020-12-22 10:22  草莓糖&薄荷茶  阅读(192)  评论(0)    收藏  举报