❤ leetCode Simple 2 – Palindrome Judgment
The title requires judging the number of palindrome
Given an integer x, return true if x is a palindromic integer; otherwise, return false
A palindromic number is an integer that reads the same in forward order (from left to right) and in reverse order (from right to left).
For example, 121 is a palindrome, but 123 is not.
The first solution - flipping the string method
The solution is only a simple sentence
return x.toString()===x.toString().split('').reverse().join('');
understand the code
x.toString()
x为 123456就是 => 123456
x.toString().split('') 就是数组 ['1', '2', '3', '4', '5', '6']
reverse()函数颠倒就是 ['6', '5', '4', '3', '2', '1']
再用join()函数转化为字符串 就是654321
作用:
——————————————————————————————————————————————————————————
toString()方法可以根据所传递的参数把数值转换为对应进制的数字字符串
例如:var a = 32;
console.log(a.toString(2)); //返回字符串100000
console.log(a.toString(4)); //返回字符串200
——————————————————————————————————————————————————————————
split()把一个字符串分割成字符串数组
例如 【1】var str="How are you doing today?";
var n=str.split(" "); // 此处有空格
n输出的值:How,are,you,doing,today?
【2】把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割
var str="How are you doing today?";
var n=str.split("");
n输出的值:H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
——————————————————————————————————————————————————————————
join() 将数组元素转换为字符串
例如:【1】 ar fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
输出的值: Banana,Orange,Apple,Mango
--------------------------------------------------------
【2】arr.join() // 返回的是⼀个字符串,如果数组为空则返回一个空字符串
var a = ['a', 'b', 'c'];
var v1 = a.join(); // v1的值变为"a,b,c"
var v2= a.join(','); // v2的值变为"a,b,c"
var v3 = a.join('+'); // v3的值变为"a+b+d"
var v4 = a.join(''); // v4的值变为"abc"
--------------------------------------------------------
——————————————————————————————————————————————————————————
The second solution - double pointer traversal method
Math.floor()
返回小于或等于一个给定数字的最大整数
*/
如果我们测试的案例是121
var isPalindrome = function(x) {
var sel=x.toString();
console.log(sel); //121
var n=Math.floor(sel.length/2); // 1.5取整数为1
console.log(n); //输出1
for(var i=0;i<n;i++){
console.log(sel[i]); // 121 的第一个位置下标为o的是1
console.log(sel.length-1-i); // 长度3-1-0=2 i为0小于n为1时候,所以此处i为0
console.log(sel[sel.length-1-i]); // 1 //sel[2]=1 // 0,1,2 //第三位为1
if(sel[i]!=sel[sel.length-1-i]) return false;
}return true;
};
Finally succeeded!