实现一个字符串匹配算法, 从字符串S中, 查找是否存在字符串T, 若存在返回所在位置, 如果不存在就返回-1
程序员文章站
2022-03-08 22:49:22
...
1: 实现一个字符串匹配算法, 从字符串S中,查找是否存在字符串T, 若存在返回所在位置, 如果不存在就返回-1
(不能基于indexOf 和 includes 等内置方法)
上代码:
~ function () {
// 循环原始字符串中每一项,让每一项从当前位置向后截取T.Length 个字符, 然后和T 进行比较, 如果不一样,则继续循环; 如果一样则返回当前索引(循环结束)
// 还需要检测原始字符串与对比字符串长度需要对比
function myIndexOf (T) {
// this: => S
let lenT = T.length;
lenS = this.length;
res = -1;
if (lenT>lenS) {
return -1;
}
for (let i= 0; i<=lenS-lenT; i++ ) {
if (this.substr(i, lenT) === T) {
res = i;
break;
}
}
return res;
}
String.prototype.myIndexOf = myIndexOf;
} ();
let S = 'xuejquepeixun';
T = 'pei'
console.log(S.myIndexOf(T));
注意:在三元运算符中, 不可以出现return cotinue, break