17 string pattern matching algorithm preliminary kmp

//名称:KMP算法初步
//日期:2020/2/3
//姓名:高万禄 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//主函数开始 以a:qabaababaabababa                b:qababa;即abaababaabababa     与ababa
int main(void)
{
	char a[100],b[100];
	gets(a);
	gets(b); 
	int sizea=strlen(a),sizeb=strlen(b),i=1,j=1;
	int next[6]={0,0,1,1,2,3};
	a[sizea]=b[sizeb]='\0';
	while(i<sizea&&j<sizeb)
	{
		if(j==0||a[i]==b[j])
		{
			i++;
			j++;
		}
		else
		{
			j=next[j];
		}
	}
	if(j>=sizeb)
		{
			printf("yes%d\n",i-sizeb+1);
		}
		else
		{
			printf("no\n");
		}
	 
	return 0;
}
//主函数结束 
Published 24 original articles · won praise 0 · Views 77

Guess you like

Origin blog.csdn.net/qq_45812941/article/details/104413663