锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久综合精品国产二区无码,怡红院日本一道日本久久,久久久久成人精品无码 http://m.shnenglu.com/suiaiguo/category/11163.html澶╄鍋ワ紝鍚涘瓙浠ヨ嚜寮轟笉鎭紱 鍦板娍鍧わ紝鍚涘瓙浠ュ帤寰瘋澆鐗?/description>zh-cnThu, 16 Jul 2009 11:24:13 GMTThu, 16 Jul 2009 11:24:13 GMT60KMP綆楁硶http://m.shnenglu.com/suiaiguo/archive/2009/07/16/90237.htmlSagaSagaThu, 16 Jul 2009 07:47:00 GMThttp://m.shnenglu.com/suiaiguo/archive/2009/07/16/90237.htmlhttp://m.shnenglu.com/suiaiguo/comments/90237.htmlhttp://m.shnenglu.com/suiaiguo/archive/2009/07/16/90237.html#Feedback1http://m.shnenglu.com/suiaiguo/comments/commentRss/90237.htmlhttp://m.shnenglu.com/suiaiguo/services/trackbacks/90237.html   KMP 鍖歸厤綆楁硶鏄敱 "Knuth  Morris  Pratt"  鎻愬嚭鐨勪竴縐嶅揩閫熺殑妯″紡鍖歸厤綆楁硶銆?nbsp; 
   hint錛氫笉涓鴻嚜韜殑鏈澶ч灝鵑噸澶嶅瓙涓查暱搴?/p>

   1.寰呰В鍐崇殑闂錛氬亣璁綪涓虹粰瀹氱殑瀛愪覆錛孴鏄緟鏌ユ壘鐨勫瓧絎︿覆錛岃姹備粠T涓壘鍑轟笌P鐩稿悓鐨勬墍鏈夊瓙涓詫紝榪欑О涓烘ā寮忓尮閰嶉棶棰樸?(鍙互緇欏嚭瀛愪覆鍦═涓殑浣嶇疆) (涓嬫枃涓彁鍒扮殑P鍜孴鍒嗗埆涓哄瓙涓插拰鐩爣涓?

   璁╂垜浠厛鏉ョ湅涓緥棰橈細

   T:   t0      t1     t2      t3 .... tm-1 ... tn-1

   P:   p0      p1     p2      p3 .....pm-1         

                                               

   浠嶵鐨勬渶宸﹁竟寮濮嬫瘮杈冿紝浣垮緱 TK = PK錛屽垯鍖歸厤鎴愬姛銆?

   2.瑙e喅妯″紡鍖歸厤闂鐨勬柟妗堬細

   A錛氭湸绱犵殑妯″紡鍖歸厤綆楁硶(鎬濊礬綆鍗?浣嗕笉澶熺畝渚匡紝鏃墮棿闀匡紝鏈夊洖婧?錛氭渶綆鍗曞拰鏈鐩存帴鐨勫仛娉曪紝鐢≒涓殑瀛楃渚濇涓嶵涓殑瀛楃榪涜姣旇緝錛岄亣鍒頒笉鐩哥瓑鐨勫瓧絎︼紝鍒欏彲灝哖鍙崇Щ涓涓瓧絎︼紝閲嶆柊榪涜姣旇緝錛岀洿鍒版煇嬈″尮閰嶆垚鍔熸垨鑰呭埌杈綪鐨勬渶鍙沖瓧絎︾Щ鍑篢涓烘銆?/p>

   濡傦細鑻="aaaba", T="aaabbaaaba", 鍒欏尮閰嶈繃紼嬪涓嬪浘

    T:     a   a   a   b   b   a   a   a   b  a

    P:     a   a   a   b   a                                                                

               a   a   a   b   a                

                                   .....

                               a   a   a   b  a           

   浠庝笂涓嶉毦鍒嗘瀽錛屾渶鍧忕殑鎯呭喌鏄?#8220;姣忔姣旇緝閮藉湪鏈鍚庝竴涓瓧絎﹀嚭鐜頒笉絳夛紝姣忚稛鏈澶氭瘮杈僊嬈★紝鏈澶氭瘮杈僋-M+1瓚燂紝鎬葷殑姣旇緝嬈℃暟鏈澶氫負M*(N-M+1)” 錛屾椂闂村鏉傛т負0(M*N)銆?鍦≒鍙崇Щ涓浣嶆椂錛屼笉綆′笂涓瓚熸瘮杈冪殑涓棿緇撴灉鏄粈涔堬紝鍥犳鍥炴函鏄笉鍙伩鍏嶇殑(濡傦細鍓?涓猘aa 涓嶉渶瑕佷竴浣嶄竴浣嶇殑縐?) 銆備笅闈㈡垜鏉ヤ粙緇嶆棤鍥炴函鐨凨MP綆楁硶銆?/p>

   3.KMP綆楁硶瑙e喅鍖歸厤涓摢浜涗富瑕侀棶棰橈細

   A.褰撳瓧絎︿覆姣旇緝鍑虹幇涓嶇瓑鏃訛紝紜畾涓嬩竴瓚熸瘮杈冨墠錛屽簲璇ュ皢P鍙崇Щ澶氬皯涓瓧絎︼紱 

   B. P鍙崇Щ鍚庯紝搴旇浠庡摢涓瓧絎﹀紑濮嬪拰T涓垰鎵嶆瘮杈冩椂涓嶇瓑鐨勯偅涓瓧絎︾戶緇紑濮嬫瘮杈冦?/p>

    鎴戜滑閫氳繃鏈寸礌妯″紡鍖歸厤鐨勪緥瀛愭潵寮曞嚭闂銆傚湪絎竴嬈℃瘮杈冭繃紼嬩腑澶辮觸鐨勬槸P鐨勭4涓瓧絎錛岃繖琛ㄦ槑P鐨勫墠4涓瓧絎︽槸鎴愬姛鐨勩傛ā寮廝鐨勭3涓瓧絎鍦ㄥ畠鐨勫墠3涓瓧絎?aaa)涓茍鏈嚭鐜般傚洜姝わ紝鍦ㄤ笅涓嬈℃瘮杈冩椂鍊欙紝鑷沖皯瑕佸皢P鍚戝悗縐?涓瓧絎︼紱鍐嶇湅P鐨勭涓涓瓧絎︿笌鏈鍚庝竴涓瓧絎︽槸鐩稿悓鐨勶紝鍥犳灝哖鍙崇Щ4涓瓧絎﹀悗錛屽啀浠庣涓涓瓧絎︽瘮杈冿紝鑲畾涔熸槸涓嶇瓑鐨勩傜患涓婃墍璇夛細搴旇灝哖鍙崇Щ5涓瓧絎︼紝鍐嶄粠P鐨勭0涓瓧絎﹀拰T鐨勭5涓瓧絎﹀紑濮嬫瘮杈冿紒

   KMP綆楁硶鏍稿績錛欿MP綆楁硶鍊熷姪浜庝竴涓緟鍔╂暟緇刵ext鏉ョ‘瀹氬綋鍖歸厤榪囩▼涓嚭鐜頒笉絳夋椂錛屾ā寮廝鍙崇Щ鐨勪綅緗拰寮濮嬫瘮杈冪殑浣嶇疆銆俷ext[i]鐨勫彇鍊煎彧涓庢ā寮廝鏈韓鐨勫墠i+1欏規(guī)湁鍏籌紝鑰屼笌鐩爣T鏃犲叧銆傚尮閰嶈繃紼嬩腑閬囧埌Pi涓嶇瓑浜嶵j鏃訛紝鑻ext[i]>=0錛屽垯搴斿皢P鍙崇Щi-next[i]浣嶄釜瀛楃錛岀敤P涓殑絎琻ext[i]涓瓧絎︿笌Tj 榪涜姣旇緝錛涜嫢錛歯ext[i]= -1錛孭涓殑浠諱綍瀛楃閮戒笉蹇呭啀涓嶵j姣旇緝錛岃屽簲灝哖鍙崇Щi+1涓瓧絎︼紝浠嶱0鍜孴j+1浠庢柊寮濮嬩笅涓杞瘮杈?鍙兘涓嶅お濂界悊瑙o紝鑷繁鎵句釜渚嬪瓙錛屽鐫璇濅竴鍙ヤ竴鍙ヨ瘯璇曠湅)

 

   鍥犳鍙璁$畻鍑轟笌妯″紡P鐩稿叧鐨刵ext鏁扮粍錛屾寜涓婇潰鐨勫惈涔夛紝灝卞彲浠ュ緢瀹規(guī)槗鍦扮粰鍑轟覆鐨勫尮閰嶇畻娉曘?闂灝辮繖鏍瘋漿鍖栦簡)

    C.next鐨勮綆楋細浠 = " 01001010100001"涓轟緥銆?/p>

     i   :            0   1   2   3   4   5   6    ..... 

     P   :            0   1   0   0   1   0   1    .....

    j(next[i]) :     -1   0   0   1   1   2   3    .....

   濡?錛氭垜浠綆梟ext[2]鐨勫?鏈夊叧鐨勪負P鏈韓鐨勫墠2涓瓧絎?,1銆傚湪瀛楃涓?1涓紝瀵繪壘鍑?#8220;宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆錛屾瀛楃涓叉墍鍚瓧絎︾殑涓暟灝變負next[i]鐨勫?#8221;鑰?涓嶇瓑浜?錛岀浉鍚屽瓧絎︿覆涓嶅瓨鍦紝鎵浠ext[i] = 0錛?/p>

   濡?錛氭垜浠綆梟ext[6]鐨勫鹼紝鏈夊叧鐨勪負P鏈韓鍓?涓瓧絎?10010 銆傛瀛楃涓蹭腑010 = 010宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆涓?10錛屼釜鏁頒負3銆傛墍浠ext[i]=3錛?/p>

   濡?錛氭垜浠綆梟ext[5]鐨勫鹼紝鏈夊叧鐨勪負P鏈韓鍓?涓瓧絎?1001銆傛瀛楃涓蹭腑 01=01 宸﹀彸鐩稿悓鐨勬渶澶у瓧絎︿覆涓?1錛屼釜鏁頒負2銆傛墍浠ext[i]=2錛?/p>

#include<stdio.h>
#include
<string.h>
#include
<stdlib.h>
FILE 
*fin=fopen("test.in","r");
FILE 
*fout=fopen("test.out","w");
char s1[200],s2[200];
int next[200];

int max(int a,int b)
{
    
if(a>b) return a;
    
return b;
}


void getnext()
{
    memset(next,
0,sizeof(next));
    
int i=-1,j=0;
    next[
0]=-1;
    
while(j<strlen(s2))
    
{
           
if(i==-1||s2[i]==s2[j]){
               i
++;  j++;  
               next[j]
=i;
           }

           
else i=next[i];
    }

}


int KMP()
{
    
int i=0,j=0,len1=strlen(s1),len2=strlen(s2);
    
while((i<len1)&&(j<len2))
    
{
        
if(j==-1||s1[i]==s2[j]) {j++;i++;}
        
else j=next[j];
    }

    
if(j==len2) return i-len2;
    
else return -1;
}


int index_KMP()
{
    
int i=0,j=0,len1=strlen(s1),len2=strlen(s2),re=0;
    
while(i<len1&&j<len2)
    
{
                         
if(j==-1||s1[i]==s2[j]) {i++;j++;}
                         
else j=next[j];
                         re
=max(re,j);
    }

    
return re;
}


int main()
{
    fscanf(fin,
"%s",s1);
    
for(int i=1;i<=3;i++)
    
{
            fscanf(fin,
"%s",s2);
            getnext();
            fprintf(fout,
"%d %d\n",KMP(),index_KMP());
    }

    
return 0;
}



Saga 2009-07-16 15:47 鍙戣〃璇勮
]]>
一本色道久久综合亚洲精品| 国产精品一久久香蕉国产线看 | 奇米影视7777久久精品人人爽| 久久久久久久亚洲精品 | 国产精品久久久久国产A级| 2020最新久久久视精品爱 | 国产婷婷成人久久Av免费高清| 国产精品久久永久免费| 久久免费香蕉视频| 久久99精品久久久久久动态图| 91精品免费久久久久久久久| 久久久久高潮综合影院| 办公室久久精品| 亚洲欧美成人综合久久久| 久久精品无码av| 国产精品久久久久久久久| 久久午夜福利无码1000合集| 精品久久久久久无码中文字幕| 亚洲综合日韩久久成人AV| 伊人久久大香线蕉无码麻豆| 97久久天天综合色天天综合色hd | 日本三级久久网| 久久久久久久人妻无码中文字幕爆| 91久久香蕉国产熟女线看| 久久精品国产亚洲av麻豆小说| 久久精品视频一| 久久久久亚洲AV综合波多野结衣| 久久99国产精品二区不卡| 久久久久亚洲AV成人片| 成人午夜精品无码区久久| 大香伊人久久精品一区二区| 天天影视色香欲综合久久| 日本欧美国产精品第一页久久| 99热都是精品久久久久久| 99久久国产亚洲高清观看2024 | 嫩草影院久久国产精品| 国内精品久久久久影院免费| 91精品国产色综合久久| 日韩精品国产自在久久现线拍| 伊人色综合久久天天| 久久久久免费视频|