题目【简单】:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
解法一:翻转字符串
var isPalindrome = function(x) {
return x.toString() === x.toString().split(‘’).reverse().join(‘’)
};
解法二:余数重组
var isPalindrome = function(x) {
if(x < 0 || (x !== 0 && x % 10 === 0)) return false
let temp = 0;
let s = x;
while(s) {
temp = temp * 10 + s % 10;
s = Math.floor( s / 10)
}
return x === temp
};
解法三:双指针
var isPalindrome = function(x) {
let y = x.toString()
let n = Math.floor(y.length/2)
for(let i = 0; i < n; i++){
if(y[i] !== y[y.length-i-1]) return false
}
return true
};
注:
- Math.floor()函数常用于向下取整
- while循环语句用法
(1) 表达式:while(表达式) { 循环体 }
(2)执行顺序:当表达式为真,进入循环执行;语句执行完之后判断表达式是否为真,如果为真,再次执行循环体语句;如果表达式为假,执行完循环体内全部语句后再跳出(不是立即跳出)