标签: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; }
标签:os io 代码 amp 算法 size ios on
原文地址:http://www.cnblogs.com/bofengyu/p/3909794.html