0
点赞
收藏
分享

微信扫一扫

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

四月天2021 2022-02-17 阅读 91

简介:

举例:(图)

在这里插入图片描述

代码:

#include<stdio.h>
#include<assert.h>
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;
}
举报

相关推荐

0 条评论