KMP算法和BM算法

#include 
#include 
#include 
using namespace std;

int KMPSearch(const string &str,const string &pat)
{
	int len1=str.length();
	int len2=pat.length();
	if (len1==0 || len2==0 || len1 next(len2,0);
	next[0]=-1;
	int k=-1;
	int j=0;
	while (j badTable(len1,len2);//存放Bad规则,匹配失败后移动步数
	vector hash_Pat(256,0);
	for (int i=0;i<256;++i)
	{
		for (int j=0;j=0 && pat[j]!=str[i])
			{
				--j;
				++cn;
			}
			badTable[i]=cn;//pat长度-最右边匹配索引
		}
		else
			badTable[i]=len2;
	}

	vector goodTable(len2,0);//good规则,待补充。j-1)
	{
		if (str[ii]==pat[j])
		{
			--ii;
			--j;
			cout<>str1>>pattern;
	getline(cin,str1);
	getline(cin,pattern);
	//int pos=KMPSearch(str1,pattern);
	int pos=BMSearch(str1,pattern);
	cout<

你可能感兴趣的:(Algorithms)