⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kmp.c

📁 算法函数库 算法函数库
💻 C
字号:
#include "stdio.h"
#include "string.h"
char s[1000000];
char p[1000000];
int next[10000000];
void next_f(char ps[])
{
	int pn=strlen(ps);
	int i=1;
	int j=0;
	next[1]=0;
	while(i<pn&&j<pn)
	{
		if(j==0||ps[i]==ps[j]){i++;j++;next[i]=j;}
		else{j=next[j];}
	}
}
int kmp(char ss[],char ps[])
{
	int sn=strlen(ss);
	int pn=strlen(ps);
	int i=0;
	int j=0;
	while(i<sn&&j<pn)
	{
		if(j==0||ss[i]==ps[j]){i++;j++;}
		else{j=next[j];}
	}
	if(j>=pn) return 1;
	else return 0;
}
int main()
{
	printf("s=");gets(s);
	printf("p=");gets(p);
	next_f(p);
	if(kmp(s,p)){printf("true\n");}
	else{printf("false\n");}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -