• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            KMP

            KMP,精妙,前后看了3次,到現(xiàn)在終于弄懂了,網(wǎng)上的各種模版很雜,錯(cuò)的也不少,自己寫了個(gè)。。。
            最妙的是next數(shù)組的運(yùn)用,PKU上不少題是不用kmp()函數(shù)而巧妙運(yùn)用next[]數(shù)組的。。。
            getnext()實(shí)際也是一個(gè)自身的KMP匹配,怎一個(gè)妙字了得~ 廣為流傳的求法實(shí)在是精練,一字不改地照搬了~~
             1#include<stdio.h>
             2#include<string.h>
             3
             4int next[255];
             5char m[255],s[255];
             6int cnt,res[255];
             7
             8void getnext()
             9{
            10    int i,j;
            11    i=0;j=-1;
            12    next[0]=-1;
            13    while(s[i])
            14    {
            15        if(j==-1||s[i]==s[j])
            16            next[++i]=++j;
            17        else
            18            j=next[j];
            19    }
            20}
            21
            22void kmp()
            23{
            24    int i,j,len1,len2;
            25    i=0;j=0;
            26    len1=strlen(m);
            27    len2=strlen(s);
            28    while(i<len1)
            29    {
            30        while(j!=len2&&m[i]==s[j])//找到當(dāng)前第一個(gè)失配字符
            31        {
            32            i++;
            33            j++;
            34        }
            35        if(j==0)//第一個(gè)字符失配
            36            i++;
            37        else if(j==len2)//找到一個(gè)匹配串
            38        {
            39            res[cnt++]=i-j;
            40            j=next[j];
            41        }
            42        else//回朔
            43            j=next[j];
            44    }
            45}
            46
            47int main()
            48{
            49    freopen("in.txt","r",stdin);
            50    scanf("%s%s",m,s);
            51//    m[]="aabbbabaabbaaabbaabbaabbaabbaabbaa",s[]="aabbaabb";
            52    cnt=0;
            53    getnext();
            54    kmp();
            55    return 0;
            56}
            這兩天做了好多KMP:PKU3080,PKU3461,PKU2406,PKU2752
            還有惡心的3450,WA到現(xiàn)在了:-(   。。。

            posted on 2007-11-08 21:03 Amigo 閱讀(336) 評論(0)  編輯 收藏 引用

            <2008年10月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(4)

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久亚洲av无码精品浪潮| 精品久久久久久无码专区不卡| 亚洲一本综合久久| 久久久不卡国产精品一区二区| 久久精品国产99国产精品| 色狠狠久久综合网| 99精品国产在热久久| 欧美久久亚洲精品| 2021久久国自产拍精品| 久久国产精品免费一区二区三区| 久久婷婷色综合一区二区| 青青国产成人久久91网| 久久精品国产久精国产一老狼| 久久精品国产秦先生| 亚洲熟妇无码另类久久久| 国产激情久久久久影院老熟女免费| 亚洲午夜久久久影院| 热久久国产欧美一区二区精品| 亚洲AV日韩精品久久久久久| 久久免费香蕉视频| 亚洲午夜久久影院| 国产精品对白刺激久久久| 国产亚洲美女精品久久久2020| 国内精品欧美久久精品| 国产精品福利一区二区久久| 少妇人妻88久久中文字幕| 狠狠色噜噜色狠狠狠综合久久| 久久精品成人免费观看97| 久久国产精品久久精品国产| 久久香蕉超碰97国产精品| 一本色道久久88—综合亚洲精品| 欧美日韩精品久久久免费观看| 91久久九九无码成人网站| 久久精品国产秦先生| 久久婷婷综合中文字幕| 亚洲乱亚洲乱淫久久| 国产成人综合久久久久久| 久久久久国产精品三级网| 色播久久人人爽人人爽人人片aV| 久久久精品国产Sm最大网站| 久久伊人中文无码|