//1.暴力破解var isPalindrome = function(x) { let arr = x.toString().split() if( x < 0 ) { return false } else ifarr.join('') == arr.reverse().join('')) { return true }};
//2.数字转字符串,两边向中间遍历var isPalindrome = function(x) { var str = x.toString() // 1.先将数字转换成字符串 var left = 0, right = str.length-1; if( x < 0 ){ return false; } // 2.双指针, 当指针相交时证明为回文 while(left <= right) { // 3.双指针往中间遍历时, 只要判断到彼此位置不同就返回 if(str[left] !== str[right]) return false; left++; right--; } return true;}
//已知回文数的特征 // 1. 0 负数 10 的倍数 不是回文数 // 2. 利用整数反转来获取反转后的数,若和参数完全一致,则是回文数 var isPalindrome3 = function(x) { if(x < 0 || (!( x % 10 && x))) return false let x2 = x, res = 0 while(x2) { res = res * 10 + x2 % 10 x2 = ~~(x2/10); } if(res === x) return true};