#include <stdio.h>
#include <string.h>
int main()
{
int next[30];
int i=1,j=0;
char list[30] ="abc";
char goal[100]="abdabce";
next[0]=-1;
next[1]=0;
int lenlist=strlen(list);
while(i<lenlist)
{
if(j==0 || list[i]==list[j])
{
i++;
j++;
next[i]=j;
}
else
{
j=next[j];
}
}
for(i=0;i<=lenlist;i++)
{
printf("%d ",next[i]);
}
i=0;
j=0;
while(list[j] && goal[i])
{
if(list[i]==goal[j])
{
i++;
j++;
}
else if(j==-1)
{
i++;
j++;
}
else
{
j=next[j];
}
}
printf("j=%d ",j);
if(j==lenlist)
{
printf("包含");
}
else
{
printf("不包含");
}
return 0;
}Yexiaomo
Yexiaomo
相关分类