最近忙着面试耽误了几天,今天刷了07,09都是字符串处理,一个是大数反转,一个是回文数判断,我都是转成字符串处理的,过了是过了,但是挺慢的,先记着,等有机会优化下
题目
给定一个 32 位有符号整数,将整数中的数字进行反转。

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    
        x=x.toString();
    if(x[x.length-1]==0&&x.length==1){
        return parseInt(x);
    }else  if(x[x.length-1]==0){
        x=x.substr(0,x.length-1);
    }
    if(x[0]=='-'){
   x=x[0]+ x.substr(1,x.length-1).split('').reverse().join('');    
    }
    else{
          x=x.split('').reverse().join('');    
  
    }
    x=parseInt( x);
   if(x>2147483647||x<-2147483648){
        return 0;
    }else{
    return x
    }
    
};

心得:没考虑0,有个大数范围的判断,刚开始没考虑,我的可能比较蠢,以后再改吧
09
题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

var isPalindrome = function(x) {
    let isTrue=true;
    x=x.toString();
    // let x1=x.split('').reverse();
 
    for(let r=0;r<x.length/2;r++){
        if(x[r]!==x[x.length-r-1]){
            isTrue=false;
            break;
        }
    }
    return isTrue;
    
};
心得:这个就是特别慢,需要优化速度