从零开始的数据结构学习日记(八)——1.8串的简单模式匹配算法

安稳与你 提交于 2020-01-31 21:57:40

1.1简单的模式匹配算法

以下为顺序串的简单模式匹配算法,利用i和j记录当前的匹配位置,从目标串T的第pos个字符开始比较,若相等则比较后续的字符,若不相等则回溯到目标串的下一个字符开始与模式串的第一个字符比较。

int index(seqstring*T,seqstring*p,int pos)
{
	i=pos;
	j=1;
	while(i<T->length&&j<p->length)
	{
		if(T->ch[i-1]==p->ch[j-1])
		{
			i++;
			j++;
		}
		else
		{
			i=i-j+2;//主串回溯到这里
			j=1;
		}
		if(j>p->length)
		{
			return (i-p->length);
		}
		else return 0;
	}
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!