<分区>
我正在编写一个将两个字符串作为输入参数的函数:text
和 pattern
。
如果
text
以从索引index
开始的子字符串结束,并且该子字符串是pattern
的开始,则返回索引
。如果没有这样的子串,返回
-1
。
我想出了以下功能,但我想知道是否有更有效的解决方案。
那么问题来了:有没有更高效的算法来找到这样的子串?
function findSubstring(text, pattern) {
let index = -1;
for (let i = 1; i <= text.length; i++) {
const tail = text.substr(-i);
if (pattern.indexOf(tail) === 0) {
index = text.length - i;
}
}
return index;
}
const exampleText = 'const result = items.m';
const examplePattern = '.map((item) => {})';
console.log(findSubstring(exampleText, examplePattern)); // -> 20