#include <iostream>
#include <vector>
#include <string>
using namespace std;
int ViolentMatch(string& s, string& p)
{
int sLen = s.size();
int pLen = p.size();
int i = 0;
int j = 0;
while (i < sLen && j < pLen)
{
if (s[i] == p[j])
{
//①如果当前字符匹配成功(即S[i] == P[j]),则i++,j++
i++;
j++;
}
else
{
//②如果失配(即S[i]! = P[j]),令i = i - (j - 1),j = 0
i = i - j + 1;
j = 0;
}
}
//匹配成功,返回模式串p在文本串s中的位置,否则返回-1
if (j == pLen)
return i - j;
else
return -1;
}
int main(void) {
string s = "abcdefgh";
string p = "efg";
cout << ViolentMatch(s, p) << endl;
return 0;
}
字符串匹配(暴力求解方法)
最新推荐文章于 2024-09-05 23:31:31 发布