BF算法简单了解C(含图)

简介:

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

举例:(图)

BF算法简单了解C(含图)_第1张图片

代码:

#include
#include
int BF(char* str, char* sub)
{
	assert(str != NULL && sub != NULL);
	if (str == NULL || sub == NULL) return -1;
	int i = 0;
	int j = 0;
	int strLen = strlen(str);
	int subLen = strlen(sub);
	while (i < strLen && j < subLen)
	{
		if (str[i] == sub[j])
		{
			i++;
			j++;
		} 
		else
		{
			//回退
			i = i - j + 1;
			j = 0;
		}
	}
	if (j >= subLen)
	{
		return i - j;
	} 
	return - 1;
} 
int main()
{
	printf("%d\n", BF("ababcabcdabcde", "abcd"));//5
	printf("%d\n", BF("ababcabcdabcde", "abcde"));//9
	printf("%d\n", BF("ababcabcdabcde", "abcdef"));//-1
	return 0;
}

你可能感兴趣的:(leetcode,牛客日常,c语言,算法,开发语言)