[算法]令人迷惑的前端面试题——回文

in 前端 with 0 comment

大厂在面试前端的时候往往会深挖一些数据结构、算法的问题
面试官会在背后问一系列的问题,来考察候选人的算法能力
于是我陆续的总结一些内容,以方便我下次换工作时候还可以来复习

回文

palindrome
回文的含义就是正读倒读内容是一样的,例如:上海自来水来自海上

技术难点

这种类型的题目通常考察的是 js 数组的相关方法
我们需要把字符串倒过来,可以通过把字符串拆分成数组、倒转,再恢复成字符串的方法实现

Array.split()
Array.reverse()
Array.join()

Array.split(separator, length)

Array.reverse()

Array.join(separator)

例题

判断给定字符串在不考虑大小写、标点符号和空格时候是否是回文,返回 Boolean

function palindrome (str) {
  const rule = /[^0-9a-zA-Z]/g
  str = str.replace(rule ,'').toLowerCase()
  const reverseStr = str.split('').reverse().join('')
  return str === reverseStr
}