题目: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 - 1while (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