字符串匹配算法——BF算法(Brute Force)
欢迎关注个人公众号:程序员宅急送
公众号微信号:Geek_Zhai
核心思想:
假设我们主串长度为n,模串长度为m,BF算法就是要去遍历主串的n个字符,每次都再循环比对n-m+1个字符,所以时间复杂度是n*m;
原理如下图:
代码如下:
class Solution
{
public:
int BF(const string& src,const string& dst)
{
int srcLength = src.size();
int dstLength = dst.size();
int count = srcLength-dstLength+1;
bool flag =true;
for(int i =0;i<count;++i)
{
flag =true;
if(src[i]==dst[0])
{
for(int j=1;j<dstLength;++j)
{
if(src[i+j]!=dst[j])
{
flag=false;
break;
}
}
if(flag)
{
return i;
}
}
}
return -1;
}
};