给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例1:
输入:x = -121
输出:false
示例2:
输入:x = 121
输出:true
方法1:
思路:与整数翻转相似,先把字符串转换成数组,进行翻转后再变成字符串,判断此时,翻转后的字符串和最一开始的字符串是否相同
//******************第一种**********************
var isPalindrome = function (x) {
// console.log(typeof x);
let min = -Math.pow(2, 31) - 1;
let max = Math.pow(2, 31);
var s = (Math.abs(x) + "").split("").reverse().join("");
// console.log(typeof s);
if (s == x && s < max && s > min) {
return true;
} else {
return false;
}
};
console.log(isPalindrome("-121"));
方法2:
思路:与整数翻转相似,采用循环判断,但这里要注意,在判断x是否小于0后,要再定义一个变量使其等于x,因为在循环判断中,x的值进行了改变
//******************第二种**********************
var isPalindrome = function (x) {
// console.log(typeof x);
// let min = -Math.pow(2, 31) - 1;
// let max = Math.pow(2, 31);
if (x < 0) return false;
var i = x;
var num = 0;
do {
num = num * 10 + (x % 10);
x = parseInt(x / 10);
} while (x != 0);
if (num == i) {
return true;
} else {
return false;
}
};
console.log(isPalindrome("-12321"));