码迷,mamicode.com
首页 > 其他好文 > 详细

kmp算法代码

时间:2014-08-13 14:27:26      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:os   io   代码   amp   算法   size   ios   on   

 

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
const int maxsize=100;
void getnext(string t,int next[])
{
	int j,k;
	j=0; k=-1; next[0]=-1;
	while(j<int (t.length())-1)
	{
		if(k==-1 ||t[j]==t[k])
		{
			j++;k++;
			next[j]=k;
		}
		else k=next[k];
	}
}
int kmpindex(string s,string t)
{
	int next[maxsize],i=0,j=0;
	memset(next,-1,sizeof(next));
	getnext(t,next);
	while(i<int (s.length() )&&j<int (t.length() ))//需把unsigned int转换为 int
	{
		if(j==-1 ||s[i]==t[j])
		{
			i++;
			j++;
		}
		else j=next[j];
	}
	if(j>=int (t.length() ))
		return (i-int (t.length()));
	else
		return -1;
}

int main()
{
	string a;
	string b;
	cin>>a;
	cin>>b;
	cout<<kmpindex(a,b)<<endl;
	return 0;
}




 

kmp算法代码,布布扣,bubuko.com

kmp算法代码

标签:os   io   代码   amp   算法   size   ios   on   

原文地址:http://www.cnblogs.com/bofengyu/p/3909794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!