美文网首页
前端-KMP匹配

前端-KMP匹配

作者: FConfidence | 来源:发表于2018-09-07 23:53 被阅读6次
/**
 * [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匹配

  • 串的模式匹配算法

    KMP算法 算法匹配

  • KMP字符串匹配

    KMP字符串匹配

  • 09--KMP

    [toc] KMP算法原理 KMP思想 假设字符串abcdefgab和模式串abcdex,进行匹配,当匹配到x位置...

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • KMP 算法

    KMP 算法 1. 暴力匹配算法 在分析KMP算法前, 先看看暴力匹配算法是如何工作的.暴力匹配算法的基本思想是:...

  • KMP算法理解

    KMP的由来 在KMP算法之前,对文本进行匹配时使用的是朴素模式匹配算法,也就是最简单匹配算法.当然运行效率也是让...

  • 字符串匹配算法

    KMP算法 算法介绍 KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。...

  • 字符串查找匹配--kmp算法

    部分匹配表 KMP的关键是部分匹配表。理解KMP的主要障碍是没有完全掌握部分匹配表中的值到底意味着什么。试着用最简...

  • KMP

    KMP有什么用 KMP主要应用在字符串匹配上。 KMP的主要思想是「当出现字符串不匹配时,可以知道一部分之前已经匹...

网友评论

      本文标题:前端-KMP匹配

      本文链接:https://www.haomeiwen.com/subject/jqzhgftx.html