KMP演算法JS實現

2022-01-20 01:08:40 字數 779 閱讀 9062

參考阮一峰的《字串匹配的kmp演算法》,用js實現一版,備忘~

//

主串let str1 = 'bbc abcdab abcdabcdabdedc';

//模式串

let str2 = 'abcdabd';/**

* 算出《部分匹配表》partial match table

* @method

* @param str 要計算的字串

* @return 部分匹配表 */

let getpmt = (str = '') =>);

//字尾

let suffix = temp.substring(1).split('').map((item, index) =>);

let publiclength = 0;

//比較字首字尾得出最長公共字元長度

prefix.foreach(preitem =>

})

})pmt.push(publiclength);

k++;

}return

pmt;

}let pmt =getpmt(str2);

let m = 0;

let n = 0;

while(m < str1.length && n else

if(n > 0)

else

}if(n ===str2.length)至$`);

}else

2019-09-17 23:21:38

js實現kmp演算法 js實現KMP演算法,淺顯易懂

開始 首先,kmp演算法是用來幹什麼的?用來匹配字串,如果匹配,返回索引值。其次,為什麼要用kmp演算法?因為能簡化時間複雜度 廢話,演算法都是用來提公升效率的 然後,kmp演算法是以什麼方式簡化時間複雜度的?一般我們匹配字串可以用正規表示式,或者拿這個字串與目標字串乙個個比較,那麼就有乙個問題,如...

js實現kmp演算法 經典演算法系列 KMP演算法

網易等公司在筆試中經常會考察有關字串的題目,因此,我們要掌握相關演算法。通常這些題目會考察模式匹配,以及情況的列舉,因此,本文介紹經典的kmp模式匹配演算法和經典的全排列演算法。下面首先介紹字串相關知識。假定有字串s1,s2,strcpy s1,s2 表示將s2賦值給s1 strcat s1,s2 ...

KMP演算法實現

核心是模式串next陣列的生成 include stdio.h include string h define ns 100 intstrpos char s1 char s2 intn void next char s2,int n int main intargc,char args next ...