其他分享
首页 > 其他分享> > 串的匹配

串的匹配

作者:互联网

一、朴素的模式匹配算法

时间算法复杂度: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));

 

标签:Index,匹配,主串,pos,length,let,test
来源: https://www.cnblogs.com/Idealbean/p/15735583.html