/**
* [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))
网友评论