多字串匹配 aho corasick演算法

2021-08-30 09:45:44 字數 468 閱讀 4450

aho-corasick自動機

1、圖示

2、原理:實質是kmp演算法在多模式串匹配的擴充套件,首先構造trie樹,然後以層次遍歷序訪問該樹,在trie樹的基礎上構造a-c自動機。

其中f(q)表示:

1)q是個終結狀態,如果q對應乙個完整的字串,則稱q為終結狀態

2)f(q)包括了模式串集合p中,q所對應的該集合的子集的字串

3、構造**

基本的演算法

二、高階演算法

1、對供給函式s的狀態轉移預先進行計算,對於字母表的每個字元,所有狀態都有相應的轉移。

2、這種完全的自動機可以由供給函式計算出來,首先,對於字母表中的每個字元σ如果δ(0,σ)=θ,然後按層次遍歷的方式訪問自動機,設當前狀態為current,如果δ(current,σ)=θ,則置δ(current,σ)=δ(

sac(current),σ)

3、不足之處,需要巨大的儲存空間

ASP VBScript指令碼多字串匹配問題

這個問題我在網上搜了好久,可是不管是baidu還是google,都找不到什麼答案,說要什麼正規表示式,那啥看得稀里糊塗的,算啦,另外想辦法吧。後來看到乙個人提到可以用乙個函式instr 返回某字串在另一字串中第一次出現的位置,函式的具體用法參照好吧,這對於我這個學計算機的人來說,就好辦了,直接自己利...

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...