KMP匹配算法

来源:互联网 发布:如何正确使用网络 编辑:程序博客网 时间:2024/06/05 08:51
A:朴素的模式匹配算法(思路简单,但不够简便,时间长,有回溯):最简单和最直接的做法,用P中的字符依次与T中的字符进行比较,遇到不相等的字符,则可将P右移一个字符,重新进行比较,直到某次匹配成功或者到达P的最右字符移出T为止。P,T为两个比较的字符串。对于朴素的模式匹配算法如下代码
#include "stdafx.h"#include <string.h>#include <iostream.h>int Index(char *s,char *t,int pos)//pos表示从t的第几个字符开始查找{if (strlen(t)<strlen(s)){cout<<"查找匹配的子串失败"<<endl;return 0;}int index=pos;for (int i=0,j=0;i<strlen(s),j<strlen(t);){if (s[i]==t[j]){if (i==strlen(s)-1){cout<<"成功在第"<<index+1<<"个字母开始匹配成功"<<endl;return index+1;}i++;j++;}else{i=0;index++;                           j=index;}    }cout<<"查找匹配的子串失败"<<endl;return 0;}int main(int argc, char* argv[]){char *p="0001";char *t="00000000000001";         Index(p,t,0);return 0;}

原创粉丝点击