求kmp演算法的詳細解釋。(最好附上能執行的程式)

2025-03-31 23:10:14 字數 1588 閱讀 2314

1樓:匿名使用者

t;i),那麼next[i]就是所有這樣的j的最大值。

形毀羨象地纖伏拍說,就是假如第i 1個字元匹配失敗之後,下乙個可能匹配位置至少應廳腔該往後挪動多少。

就"abaabc"而言。

next[1]=0

next[2]=0

next[3]=1

next[4]=1

next[5]=2

next[6]=0

計算過程基本上抄自演算法導論,假設str長度為nk=0;//k表示當前匹配了多少位。

next[1]=0;

for (i=1;in;i )

while (k

2樓:網友

matrix67大牛空間有詳細介紹。

兩次匹配腔握 一次自我灶液匹配 一次與串互相匹配。

其精髓就是匹配不成功的話並不是返回起點 , 而是伍辯慶返回記錄值。

var i,j,k,l,m,n,p:longint;

s,s1:ansistring;

pre:array[0..100000] of longint;

beginreadln(s1);

readln(s);

pre[1]:=0;p:=0;

for i:=2 to length(s1) dobeginwhile (p>0)and(s1[i]<>s1[p+1]) do p:=pre[p];

if s1[i]=s1[p+1] then inc(p);

pre[i]:=p;

end;k:=0;

p:=0;for i:=1 to length(s) dobeginwhile (p>0)and(s[i]<>s1[p+1]) do p:=pre[p];

if s[i]=s1[p+1] then inc(p);

if p=length(s1) then

begininc(k);

writeln(i-length(s1)+1);

halt;end;

end;writeln(k);

end.

kmp演算法的介紹

3樓:摔

kmp演算法是一種改進的字串匹配演算法,由,和同時發現,因此人們稱它為克努特——莫里斯——普拉特操作(簡稱kmp演算法)。kmp演算法的關鍵是利用匹配失敗後的資訊,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。具體實現就是實現乙個next()函式,函式本身包含了模式串的區域性匹配資訊。

關於kmp演算法問題

4樓:仙戈雅

k=nextval[k]的意思是指當模式串(即t串)與主串(即s串)發生失配時,這個k應當指示字首指標應當回溯到哪個位置。

比如,有下面的匹配表值。

next值 :001012

假設k當前等於2時,那麼如果此時模式串與主串發生失配時,就有k=nextval[2]=1,即模式串與主串匹配到第2個字元時發生失配,那麼字尾指標無需回溯,字首指標只需回溯到第1個字元的位置並且繼續與主串的第2個字元匹配。這樣就可以加快匹配的速度,因為字尾指標不用再回溯。即教材所說的字尾指標儘量向右側滑動。

C語言問題,求大神指教,求解釋本程式,最好詳細點,謝謝啦,我

main 程式入口 printf 各位數之和s d n s printf 其反序數 d n a 整個程式就是為了得到輸入的數的逆序排列數以及所有數字之和 include main printf 各位數之和s d n s printf 其反序數 d n a 如 輸入 123 輸出各位數之和s 1 2 ...

高分求呼和浩特的好小學都有哪些最好附上地址

最好的 是北垣小學 火車站往東剛上北垣街第一個路口往南拐塞外閣那 和滿族小學 勸業正對面的小街上三中旁邊 和農大附小 農大附小現在!每天孩子要寫到11 30作業 很晚!太摧殘孩子了 不建議去 北垣和滿族小學都很好如果你要買房 建議買滿小附近的 這樣離三中 搖號 和三分 這個得自己考的上或者花錢上 都...

求已完結的女強穿越玄幻小說,最好附上簡介

厄 沒簡介也 肯定好看 女主天下 大小姐駕到 傲風 雲狂 神醫傻妃 成親當日。花轎抬到門前,他輕掀轎簾,卻不見新人,只見一塊石頭下壓著的一張紙。看著她那眉飛色舞的字型,他那千年不變的眸子中隱隱的噴出幾股火光。好,很好。他那完美的無懈可擊的臉上,卻漫起淡淡的笑,只是,沒有人看到,那絲笑中,隱著的寒意。...