BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
代码如下:
#include <iostream>
#include <string>
using namespace std;
int bruceforce(string s1, string s2)
{
int i = 0, j = 0;
int index = -1;
int cnt;
//cout << s1.size() << " " << s2.size() << endl;
while(i < s1.size() && j < s2.size()){
//cnt++;
if(s1[i] == s2[j]){
i++;
j++;
}
else{
i = i - j + 1;
j = 0;
}
}
//cout << "circle count: " << cnt << endl;
if(j == s2.size()){
index = i - j + 1;
}
return index;
}
int main()
{
string a = "12343214325789";
string b = "4325";
int x = bruceforce(a, b);
cout << "locate at " << x << endl;
return 0;
}