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