串的bf算法代码
以下是串的BF算法的代码,BF算法又称暴力匹配算法,它是一种简单粗暴的字符串匹配算法,时间复杂度为O(m*n),其中m和n分别为主串和子串的长度。
void BF(string s, string t)
{
int i = 0, j = 0;
while(i < s.length() && j < t.length())
{
if(s[i] == t[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if(j == t.length())
{
cout << "BF算法匹配成功,匹配的位置为" << i - j << endl;
}
else
{
字符串长度17模式串长度 cout << "BF算法匹配失败!" << endl;
}
}
在此代码中,s代表主串,t代表模式串(也就是要匹配的子串)。首先定义了两个指针i和j,i指向主串的起始位置,j指向模式串的起始位置。接下来,通过while循环遍历主串s,逐一比较s和t中的字符,若相同,则将两个指针都向后移动一位。如果当前字符不匹配,则将主串的指针i回退到上一个匹配开始的下一个位置,即i-j+1,并且将模式串的指针j重新归零,以进行下一轮匹配。
当循环结束时,如果j等于模式串t的长度,那么说明字符串匹配成功,返回匹配位置;否则,
匹配失败。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论