js:一些常見的算法題

//前端常見的算法題
//Q1 判斷字符串或句子是否爲迴文?(迴文例如:abcba,字符串會形成一個迴路,顛倒過來是一樣)
  function isHui(str){
  var arr_str=str.split("")
  var new_str=arr_str.reverse().join("")
    console.log(new_str)
  if(str==new_str){
  alert(str+"就是一個迴文")
  }else{
  alert(str+"不是迴文")
  }
  }
 //Q2 數組去重
  function uniqueArr(arr){
    var new_arr=[],ojb={}

    for(var a=0;a<arr.length;a++){

     let type=typeof(arr[a]) //判斷每項的類型

   ojb[arr[a]]=ojb[arr[a]]||[];//如果存在就用存在的,如果不存在就賦值一個空數組

    if(ojb[arr[a]].indexOf(type)<0){
      ojb[arr[a]].push(type)
      new_arr.push(arr[a])
    }
    }
    return new_arr;
  }
  //Q3 統計一個字符串種最多的字母
  function getMost(str){
    if(str.length==1){
      return str;
    }
    var mostStr="",time=0,ojb={}
    for(var a=0;a<str.length;a++){
       if(!ojb[str.charAt(a)]){
        ojb[str.charAt(a)]=1
       }else{
        ojb[str.charAt(a)]+=1
       }
    }
    for(var item in ojb){
      if(ojb[item]>time){
        time=ojb[item]
        mostStr=item
      }
    }
    return mostStr;
  }
 //Q4 排序算法,在快速排序中一定要記得設置一個最終的循環終止的條件
  function arrSort(arr){
    for(var a=0;a<arr.length;a++){
      for(var j=a+1;j<arr.length;j++){
        if(arr[a]>arr[j]){
          var tmp=""
          tmp=arr[a]
          arr[a]=arr[j]
          arr[j]=tmp
        }
      }
    }
    return arr;
  }
  function fastSort(arr){
    if(arr.length<=1){
      return arr;
    }
    var leftArr=[],rightArr=[],q=arr[0]
    for(var a=1;a<arr.length;a++){
      if(arr[a]>q){
        rightArr.push(arr[a])
      }else{
        leftArr.push(arr[a])
      }
    }
    return [].concat(fastSort(leftArr),[q],fastSort(rightArr))
  }



//Q6:生成隨機字符串
  function ranStr(n){
    var str="absbcityoepqlvm12345678"
    var ranS=""
    for(var a=0;a<n;a++){
      var i=Math.floor(Math.random()*(str.length-1))
       ranS+=str.charAt(i)
    }
    return ranS;
  }
//Q7:求數組中最大值和最小值的差
 function maxDiff(arr){
    var max=arr[0],min=arr[0];
    for(var a=1;a<arr.length;a++){
      if(arr[a]>max){
        max=arr[a]
      }else{
        min=arr[a]
      }
    }
    return max-min;
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章