大厂在面试前端的时候往往会深挖一些数据结构、算法的问题
面试官会在背后问一系列的问题,来考察候选人的算法能力
于是我陆续的总结一些内容,以方便我下次换工作时候还可以来复习
回文
回文的含义就是正读倒读内容是一样的,例如:上海自来水来自海上
技术难点
这种类型的题目通常考察的是 js 数组的相关方法
我们需要把字符串倒过来,可以通过把字符串拆分成数组、倒转,再恢复成字符串的方法实现
Array.split()
Array.reverse()
Array.join()
Array.split(separator, length)
- separator 分割用的字符串或正则表达式,分割后返回数组,不包含 separator 本身,是
''
时将会把每个字符都分开'name=mitkimi'.split('=') // ['name', 'mitkimi']
- length 返回数组的最大长度
Array.reverse()
- 该方法会把数组倒序,不会产生新数组
Array.join(separator)
- separator 是产生的分隔符,可以为
''
,如果省略,将以,
作为分隔符['type', 'arr', 'abc'].join('|') // type|arr|abc
例题
判断给定字符串在不考虑大小写、标点符号和空格时候是否是回文,返回 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
}