c++用BF算法实现串匹配问题,
时间: 2024-09-12 17:07:14 浏览: 47
串匹配BF算法 蛮力法——C++代码
5星 · 资源好评率100%
BF算法,全称是Brute Force算法,是一种简单直观的字符串匹配算法。它的工作原理是将目标串(也称为文本串)和模式串从头开始逐个字符进行比较,如果在某一点发现不匹配,就将模式串向右滑动一位,然后从模式串的开头重新开始比较。
以下是使用C++实现BF算法的基本步骤:
```cpp
#include <iostream>
#include <string>
// BF算法实现串匹配
int BF(const std::string& text, const std::string& pattern) {
int n = text.size();
int m = pattern.size();
for (int i = 0; i <= n - m; ++i) {
int j = 0;
for (; j < m; ++j) {
if (text[i + j] != pattern[j]) {
break; // 发现不匹配,跳出内层循环
}
}
if (j == m) {
return i; // 完全匹配,返回匹配的起始位置
}
}
return -1; // 未找到匹配,返回-1
}
int main() {
std::string text = "this is a simple example";
std::string pattern = "simple";
int pos = BF(text, pattern);
if (pos != -1) {
std::cout << "Pattern found at index " << pos << std::endl;
} else {
std::cout << "Pattern not found." << std::endl;
}
return 0;
}
```
在这个实现中,`text`是目标串,`pattern`是模式串。函数`BF`会返回模式串在目标串中的起始位置索引,如果没有找到匹配则返回-1。
阅读全文