题目:9. 回文数
难度:简单
链接:https://leetcode-cn.com/problems/palindrome-number/
内容:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。例如:121 是回文,而 123 不是。
var isPalindrome = function (x) {
//转成数组
const copyX = Array.from(x.toString());
//如果长度为1,直接返回
if (copyX.length === 1) return true;
//定义两个指针
let i = 0, j = copyX.length - 1
while (i <= j) {
//如果头尾两指针数据相等,则 i前进一步,j回退一步;
if (copyX[i] === copyX[j]) {
i++;
j--;
continue;
} else {
return false;
}
}
return true;
};
11510 / 11510 个通过测试用例
执行用时: 152 ms
内存消耗: 46.8 MB
var isPalindrome = function (x) {
//先转成字符串,然后转成数组,转完数组后反转一下;
const copyX = Array.from(x.toString()).reverse();
//把反转的字符串拼成字符串,随后转成数字;
const result = parseInt(copyX.join(\\\'\\\'), 10)
//对比
if (x === result) {
return true;
} else {
return false;
}
};
11510 / 11510 个通过测试用例
执行用时: 156 ms
内存消耗: 47 MB
举个例子:1221 这个数字。
通过计算 1221 / 1000, 得首位1
通过计算 1221 % 10, 可得末位 1
进行比较
再将 22 取出来继续比较 …
var isPalindrome = function(x) {
//转成数组
const arr = String(x).split(\\\'\\\');
//有长度则进入 while 循环
while (arr.length > 1) {
//每次循环都取第一个和最后一个来比对;
if (arr.shift() !== arr.pop()) {
return false;
}
}
return true;
};
shift() 和 pop() 方法一出,佩服。
原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34585.html