第一节

Q1:判断一个单词是否是回文?

回文:是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。比如 mamam redivider .

function checkPalindrom(str) {  
    return str == str.split('').reverse().join('');
}

Q2:去掉一组整型数组重复的值

比如输入: [1,13,24,11,11,14,1,2] 
输出: [1,13,24,11,14,2]
需要去掉重复的11 和 1 这两个元素。

这道问题出现在诸多的前端面试题中,主要考察个人对Object的使用,利用key来进行筛选。

/**
* unique an array 
**/
let unique = function (arr) {  
  let hashTable = {};
  let data = [];
  for (let i = 0, l = arr.length; i < l; i++) {
    const item = arr[i];
    if (hashTable[item] === undefined) {
      hashTable[item] = true;
      data.push(item);
    }
  }
  return data;
}

Q3:统计一个字符串出现最多的字母

给出一段英文连续的英文字符窜,找出重复出现次数最多的字母

输入 : afjghdfraaaasdenas 
输出 : a

前面出现过去重的算法,这里需要是统计重复次数。

function findMaxDuplicateChar(str) {  
  if(str.length === 1) {
    return str;
  }
  let charObj = {};
  for(let i=0;i= maxValue) {
      maxChar = k;
      maxValue = charObj[k];
    }
  }
  return maxChar;
}
module.exports = findMaxDuplicateChar;  

你可能感兴趣的:(第一节)