#include<iostream>
#include<string>
using namespace std;
//如果匹配成功那么返回值是模式串在文本串中的起始位置,反之
//如果匹配失败,那么返回值是文本串的长度。
int match(string P, string T)
{
//串匹配算法(Brute-Force-version-1)
size_t n = T.length(), i = 0;//文本串长度,当前接受比对字符的位置
size_t m = P.length(), j = 0;//模式串长度,当前接受比对字符的位置
while (j < m && i < n)//自左向右逐个比对字符
{
if (T[i] == P[j])
{
//若匹配
i++;
j++;//则转向下一个字符
}
else
{
//否则
i -= j-1;//文本串回退
j = 0;//模式串复位
}
}
return i - j;
}
int main()
{
string pattern = "p23456789";
string text = "1234567890abcdefghijklmnopqrstuvwxyz";
cout << match(pattern, text);
getchar();
return 0;
}
字符串匹配算法:(暴力匹配-版本一)
猜你喜欢
转载自blog.csdn.net/dosdiosas_/article/details/105660302
今日推荐
周排行