C++实现KMP字符串匹配算法-创新互联

以前写的代码,先搬运到上来。先贴代码,后面补说明

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站设计、咸宁网络推广、成都微信小程序、咸宁网络营销、咸宁企业策划、咸宁品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联建站为所有大学生创业者提供咸宁建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com代码实现 KMP主函数
int KMP(char * t, char * p)
{
	int i = 0;
	int j = 0;

	int* pNext = new int[(int)strlen(p)]{-1};
	GetNext(p,pNext);

	while (i< (int)strlen(t) && j< (int)strlen(p))
	{
		if (j == -1 || t[i] == p[j])
		{
			i++;
			j++;
		}
		else
			j = pNext[j];
	}

	if (j == strlen(p))
		return i - j;
	else
		return -1;
}
GetNext函数
void GetNext(char * p, int * next)
{
	next[0] = -1;
	int i = 0, j = -1;

	while (i< (int)strlen(p))
	{
		if (j == -1 || p[i] == p[j])
		{
			++i;
			++j;
			next[i] = j;
		}
		else
			j = next[j];
	}
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:C++实现KMP字符串匹配算法-创新互联
文章路径:http://azwzsj.com/article/dejpje.html