第三天:力扣第9题,回文数:
地址:leetcode-cn.com/problems/pa…
思路:负数直接false,因为我后面直接判断大于零的,零直接true,然年后再声明数组,将数字存入数组,因为整数位无法直接比较,所以我是放在数组中比较的。
var isPalindrome = function(x) {
let a = x;
if(a<0)//直接先把负数和0导出
{return false; }
else if(a==0)
{return true;}
let b = [];//申明数组
for(let i = 0;a>0;i++)//循环将数字取余放入数组
{
b[i] = a%10;
a=Math.floor(a/10);//很关键,因为js不分整型和浮点型,所以要用Math方法取整,这个坑了我超长时间,记忆颇深。
}
for(let i = 0;i < b.length-1 ; i++)//循环判断
{
if(b[i]!=b[b.length-1-i])
{
return false;
}
}
return true;
};
执行用时:240 ms, 在所有 JavaScript 提交中击败了58.77%的用户
内存消耗:46.2 MB, 在所有 JavaScript 提交中击败了60.91%的用户
虽然说最好不用转字符串,但是找到一个转字符串的超简洁代码。
var isPalindrome = function(x)
{ return x.toString() == x.toString().split("").reverse().join(""); }
简单说明一下,toString就是转换为字符串,split就是把字符串转化成数组,reverse就是翻转一下,join就是把数组转化成字符串,再与前面的字符串比较,比较结果为true或者false,直接return,确实简洁。