算法

191 阅读1分钟

1.判断一个单词是否是回文?

回文是指把相同的词汇或句子,在上下文中调换位置或颠倒过来,产生收尾回环的情趣叫做回文
function checkPalindrom(str){
    return str === str.split('').reverse().join('');
}

2.去掉一组整型数组重复的值

考察对Object的使用,利用key来进行筛选
let unique = function(arr){
    let hashTable = {};
    let data = [];
    for(let i =0;i<arr.length;i++){
        if(!hashTable[arr[i]]){//hashTable不存在key
            hashTable[arr[i]] = true;
            data.push(arr[i])
        }
    }
    return data
}

3.统计一个字符串出现最多的字母

给出一段连续的英文字符串,找出重复出现次数最多的字母
输入:afjghdfraaaaasdenas
输入:a

function findMaxDuplicateChar(str) {  
  if(str.length == 1) {//字符串只有1个值的话就原地返回
    return str;
  }
  //获取每个字符所占个数
  let charObj = {};
  for(let i=0;i<str.length;i++) {
    if(!charObj[str.charAt(i)]) {
      charObj[str.charAt(i)] = 1;//str.charAt 返回指定位置的字符
    }else{
      charObj[str.charAt(i)] += 1;
    }
  }
  //对比个数取最大字符
  let maxChar = '',
      maxValue = 1;
  for(var k in charObj) {
    if(charObj[k] >= maxValue) {
      maxChar = k;
      maxValue = charObj[k];
    }
  }
  return maxChar;
}

4.排序算法

冒泡算法
function bubbleSort(arr){
    for(let i=0;i<arr.length;i++){
        for(let j=i+1;j<arr.length;j++){
            if(arr[i]>arr[j]){
                let tem = arr[i];
                arr[i] = arr[j];
                arr[j] = tem;
            }
        }
    }
    return arr;
}

5.不借助临时变量,进行两个整数的交换

输入a = 2,b=4 输出 a =4,b = 2
function swap(a,b){
    b = b - a ;
    a = a + b;
    b = a - b;
    return [a,b];
}