2020面试准备13----实现一个字符串匹配算法
程序员文章站
2022-03-08 22:49:28
...
实现一个字符串匹配方法,从字符串S中,查找是否从存在字符串T。若存在返回所在位置,不存在返回-1(不基于indexof/includes)
1、使用substr
~function(){
function myIndexOf(T){
let lenT = T.length,
lenS = this.length
for(let i=0;i<lenS-lenT+1;i++){
let str = this.substr(i,lenT)
if(str===T){
return i
break
}
}
return -1
}
String.prototype.myIndexOf = myIndexOf
}()
// askdfakgl
// fak
let S = 'askdfakgl'
let T = 'fak'
console.log(S.myIndexOf(T))
2、使用正则
// 使用正则
function myIndexOf(T){
let reg = RegExp(T),
res = reg.exec(this)
return res===null?-1:res.index
}
String.prototype.myIndexOf = myIndexOf
}()