力扣刷题: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; };
新手理解,若有误,请各位大佬指点,Thanks♪(・ω・)ノ

浙公网安备 33010602011771号