/**
* [indexing description]: 求模式串viceStr字符串在主串manStr中的位置
* @param {[type]} mainStr [主串]
* @param {[type]} viceStr [模式串]
* @return {[type]} [返回模式串在主串中的位置]
*/
function indexing(mainStr, viceStr) {
let i = 0, j = 0, mainLen = mainStr.length, viceLen = viceStr.length;
while (i < mainLen && j < viceLen) {
if (mainStr[i] === viceStr[j]) {
++i;
++j;
} else {
i = i - j + 1;
j = 0;
}
}
if (j >= viceLen) {
return i - viceLen;
} else return -1;
}
const a = 'ababcabcacbab';
const b = 'abcac';
const index = indexing(a, b);
console.log('the position in mainStr is: ', index)
console.log(a.indexOf(b))
const c = 'cacbabc'
const indexC = indexing(a, c);
console.log('the position in mainStr is: ', indexC)
console.log(a.indexOf(c))
前端-KMP匹配
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最简单的匹配模式就是,直接输入你想匹配的东西。 比如我想匹配 a,在模式里就可以输入一个 a 。要匹配大写的 A ...
- 串的匹配算法:对主串的每一个字符作为开头,作与要匹配的字符串的长度的小循环,直到匹配成功或全部遍历完为止。 KMP...
- 概述:本文主要在理论层面上分析KMP的基本实现原理以及《部分匹配表》推导过程;不涉及代码实现;如果您对KMP的实现...
- 判断两个串之间是否存在主串与子串的关系,这个过程称为串的模式匹配。 在串的模式匹配过程,子串 T 通常被叫做“模式...