#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
相关分类