BF算法

bf算法其实只是普通的模式匹配算法。

BF算法的思想:
将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。

代码如下:

//BF算法遍历母字符串查找子字符串
//mom:母串  son:子串
//mompos:母串遍历的位置  sonpos:子串遍历的位置   
//tempmompos:临时存储母串位置值
int FindZiString(const char* mom, const char* son)
{
	int son_size = strlen(son);
	int mom_size = strlen(mom);
	printf("son_size = %d\n mom_size = %d\n", son_size,mom_size);

	int mompos, sonpos;
	int tempmompos;
	for (mompos = 0; mompos <= mom_size - son_size ; mompos++)
	{
		for (sonpos = 0, tempmompos = mompos; sonpos < son_size; sonpos++)
		{
			if (*(son + sonpos) != *(mom + tempmompos + sonpos))
				break;
			if (sonpos == son_size - 1)
				return tempmompos ;
		}
	}
	return 0;
}
//测试代码:
int main()
{
	char Big[256] = "sagsdhsfhf";
	char Small[256] = "fhf";
	int pos = FindZiString(Big, Small);
	if (0 == pos)
		printf("no this son");
	else
		printf("pos = %d\n", pos);
	return 0;
}

结果如下:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐