##BF算法
朴素匹配法:
群举
假如给下列串:
s:主串 p 模式串
然后进行模式匹配:
第一次匹配主串和模式串不匹配。接着继续匹配。
如果模式匹配失败。模式串就会回退到主串上一次刚开始的下一个位置。 所有的情况都匹配一次。直到匹配成功。
核心代码:
int BF(PString s,PString p);
{
int i=0;//遍历 S 主串
int j=0;//遍历 P 模式串
while(i< s->cur && j< p->cur)//主串没有遍历完成 && 模式串没有遍历
{
if(i<s->pstr[i] == p->pstr[j])
{
i++;
j++;
}
else
{
i =i - j+1; //i下一趟主串需要匹配的位置
j=0;
}
}
if(j == p->cur) //模式匹配完成
{
return i-p->cur;
}
return -1;
}
2020-3-31创作。