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

📄 kmp.cpp

📁 数值分析中常用的几种算法的实现
💻 CPP
字号:
#include<string.h>
int f[200];
void swap(char *s1,char *s2){
	char temp[110];
	strcpy(temp,s1);
	strcpy(s1,s2);
	strcpy(s2,temp);
	return;
}
int kmp(char p[],char tag[],int len){
	int posp=0,post=0;
	int lengthp=len,lengtht=strlen(tag);
	while(posp<lengthp&&post<lengtht){
		if(p[posp]==tag[post]){
			posp++;
			post++;
		}
		else if(posp==0) post++;
		else posp=f[posp-1]+1;
	}
	if(posp<lengthp) return -1;
		else return post-lengthp;
}
void fail(char p[],int len){
	int lengthp=len;
	f[0]=-1;
	for(int j=1;j<lengthp;j++){
		int i=f[j-1];
		while(p[j]!=p[i+1]&&i>=0) i=f[i];
		if(p[j]==p[i+1]) f[j]=i+1;
		else f[j]=-1;
	}

}

⌨️ 快捷键说明

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