题目意思是求一个数字是不是回文,然后提示说,注意负数,还有就是数字反转可能会溢出,所以就是说不能用字符串反转判断。
方法是,设两个变量,一个从左往右,一个从右往左,取数字变成的字符串,判断两个相同不就行了
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function (x) {
// 负数不是回文
if (x < 0) {
return false
}
// 个位数是回文
// if (x >= 0 && x < 10) {
// console.log(true)
// }
// 一个从左往右,一个从右往左判断
var s = x.toString()
var left = 0,
right = s.length - 1
// 在这个循环中,可以判断个位数的情况,所以把个位数的判断整合到了这里
while(right - left >= 1) {
if (s.charAt(left) != s.charAt(right)) {
return false
}
left++
right--
}
return true
};