一、朴素的模式匹配算法
时间算法复杂度:O(m+n)
1 /** 2 * 返回字串T在主串S中第pos个字符串之后的位置。 3 * 若不存在,则函数返回值为-1 4 */ 5 function Index (S, T, pos) { 6 let i = pos; // 遍历S主串的索引号 7 let j = 0; // 遍历T子串的索引号 8 while (i < S.length && j < T.length) { 9 if(S[i] == T[j]) { 10 i++; 11 j++; 12 } else { 13 i = i - j + 1; // 回溯到i原来位置的下一位 14 j = 0; 15 } 16 } 17 if(j >= T.length) 18 return i - T.length; 19 else 20 return -1; 21 } 22 // test 23 let S = 'googlegood'; 24 let T = 'good'; 25 console.log('test:', Index(S, T, 0));