国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

kmp模板

2019-11-08 01:40:04
字體:
來源:轉載
供稿:網友

#include<stdio.h>int a[1000010],b[10010];// a是目標字符串,b是匹配字符串int next[10010]; // 當匹配串a失配的時候,next數組對應的元素指導應該用a串的哪個元素進行下一輪的匹配int n,m;// n是目標串的長度, m是匹配串長度。void getNext(){    int j,k;    j=0;    k=-1;    next[0]=-1;    while(j<m)    {         if(k==-1||b[j]==b[k])        {            j++;            k++;            if(b[j] != b[k])// 解決特殊情況例如匹配串為ccccccccd            {                next[j] = k;            }            else                next[j] = next[k];        }        else k=next[k];    }}//返回首次出現的位置int KMP_Index(){    int i=0,j=0;    getNext();    while(i<n && j<m)    {        if(j==-1||a[i]==b[j])        {            i++;            j++;        }        else j=next[j];    }    if(j==m) return i-m+1;    else return -1;}int KMP_count()  //包含子串個數{    int ans=0;    int i,j=0;    if(wlen==1&&tlen==1)    {        if(W[0]==T[0])return 1;        else return 0;    }    getNext();    for(i=0;i<tlen;i++)    {        while(j>0&&T[i]!=W[j])          j=next[j];        if(W[j]==T[i])j++;        if(j==wlen)        {            ans++;            j=next[j];        }    }    return ans;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 托里县| 车险| 涿鹿县| 安多县| 色达县| 巢湖市| 扎赉特旗| 灵石县| 西丰县| 墨玉县| 抚顺县| 兴安县| 仲巴县| 南木林县| 乌兰县| 成都市| 唐河县| 阿克| 噶尔县| 彰武县| 泰和县| 德令哈市| 海城市| 海安县| 宁南县| 家居| 阿拉善左旗| 慈溪市| 平阴县| 和平县| 连州市| 会东县| 卓尼县| 玛多县| 黄龙县| 邹城市| 宾川县| 天气| 保山市| 嘉义县| 靖州|