您的位置:首页 > 其它

朴素的字符串模式匹配算法

2015-10-22 23:50 274 查看
考虑最坏的情况,每次到最后一个字母,匹配不成功,则总共执行(n-m+1)*m 次,复杂度o(n*m)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxn 111
typedef struct
{
char str[maxn];
int len;
}seqstring;
int index(seqstring s,seqstring t)
{
int i,j,k,flag = 0;
for(i=0;i<s.len;i++)
{
k=i;
j=0;
while(j<t.len)
{
if(s.str[k++]==t.str[j++]) flag  = 1;
else
{
flag =0;
break ;
}
}
if(flag) break;
}
if(flag) return 1;
else return 0;
}
int main()
{
seqstring s,t;
int flag;
scanf("%s%s",s.str,t.str);
s.len=strlen(s.str);
t.len=strlen(t.str);
flag = index(s,t);
if(flag)  printf("字符串匹配成功\n");
else printf("字符串匹配失败\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: