BMH子串查詢演算法 PHP實現

2021-05-22 08:31:38 字數 701 閱讀 2784

inte***ce

stringsearchable

class

boyermoorestringsearch 

implements

stringsearchable

public

function

__destruct()

public

function

search(

$substring

,$buffer) 

else

} else}}

return

(sizeof

($this

->

results) 

>0);

}protected

function

derivejumptable()}}

public

function

getjumptable()

public

function

getresults()

public

function

getresultscount()

public

function

getjumplength(

$charindex) 

else}}

function

main()

字串演算法 BMH

bmh演算法全稱是boyer moore horspool演算法。它不再像bm演算法一樣關注失配的字元,它的關注的焦點在於匹配文字每一次匹配失敗的最後乙個字元x,根據這個字元x是否在模板出現過來決定跳躍的步數,否則跳躍模板的長度。所以分了兩種情況 一 字元x不在模板p中,則跳躍的步數為模板p的長度 ...

字串匹配演算法 BMH演算法 C實現

include include define maxchar 256 把壞子串的下一跳找出來 void pre process char patt,int m,int bm bc 最後一次字元的值不需要計算,保留預設值m,或者使用0 m 1 內計算到的值 for k 0 k m 1 k printf...

KMP 子串查詢演算法

如何在目標字串s中,查詢是否存在子串p?樸素解法 字串s中查詢子串p的位置 int sub str index const char s,const char p ret equal i 1 return ret 樸素解法的乙個優化線索 因為,pa pb pc 且 pc sc 所以,pa sb pa...