• <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次,到現在終于弄懂了,網上的各種模版很雜,錯的也不少,自己寫了個。。。
            最妙的是next數組的運用,PKU上不少題是不用kmp()函數而巧妙運用next[]數組的。。。
            getnext()實際也是一個自身的KMP匹配,怎一個妙字了得~ 廣為流傳的求法實在是精練,一字不改地照搬了~~
             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])//找到當前第一個失配字符
            31        {
            32            i++;
            33            j++;
            34        }
            35        if(j==0)//第一個字符失配
            36            i++;
            37        else if(j==len2)//找到一個匹配串
            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到現在了:-(   。。。

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

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導航

            統計

            常用鏈接

            留言簿(4)

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲日本va午夜中文字幕久久| 2020久久精品国产免费| 久久久久亚洲AV无码去区首| 色婷婷综合久久久久中文字幕| 精品熟女少妇AV免费久久| 久久精品成人免费看| 欧美亚洲国产精品久久高清| 久久精品国产亚洲欧美| 97精品伊人久久久大香线蕉| 国产精品99久久精品爆乳| 无码国产69精品久久久久网站| 精品久久久久中文字| 久久99久久99小草精品免视看| 久久久SS麻豆欧美国产日韩| 精品久久久久久无码国产| 69久久精品无码一区二区| 婷婷五月深深久久精品| 中文字幕无码久久久| 久久www免费人成精品香蕉| 国产精品久久亚洲不卡动漫| 日产精品久久久久久久| 人妻无码精品久久亚瑟影视| 色99久久久久高潮综合影院 | 中文字幕久久久久人妻| 久久午夜综合久久| 人人狠狠综合久久亚洲婷婷| 日韩av无码久久精品免费| 久久免费看黄a级毛片| 老司机午夜网站国内精品久久久久久久久 | 久久人人爽人人爽AV片| 伊人久久大香线蕉影院95| 久久亚洲欧美日本精品| 久久亚洲国产中v天仙www| 久久水蜜桃亚洲av无码精品麻豆 | 91精品国产综合久久久久久| 久久精品人人做人人妻人人玩| 狠狠色综合网站久久久久久久高清 | 97久久久久人妻精品专区| A狠狠久久蜜臀婷色中文网| 精品九九久久国内精品| 日本道色综合久久影院|