#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
// BF brute-force
int bf(char *s, char *t)
{
int i = 0, j = 0;
int slen, tlen;
slen = strlen(s);
tlen = strlen(t);
printf("slen:%d, tlen:%d.\n", slen, tlen);
if(slen < tlen) return -1;
while(i < slen && j < tlen)
{
if(s[i] == t[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if(j == tlen)
{
return i - tlen;
}
else
{
return -1;
}
}
int main(int argc, char * argv[])
{
int ret;
char str[] = "testabc";
char *t = "bcd";
printf("%s - %s %s.\n", argv[0], __DATE__, __TIME__);
ret = bf(str, t);
printf("str: [%s], t: [%s], ret is %d.\n", str, t, ret);
return 0;
}
数据结构学习——字符串查找BF算法
最新推荐文章于 2022-06-01 11:12:38 发布