最近两天解决字符串的匹配问题。现在先写上最普通的字符串匹配的程序,时间复杂的是(n*m)。这个是书上讲解kmp的前奏。预计今天晚上写出kmp算法。
#include<iostream>
#include<string>
using namespace std;
string s1,s2;
int first,flag;
int find(string s1,string s2)
{
int i,j,start;
i=0;
j=0;
start=0;
while(i<s1.size()&&j<s2.size())
{
if(s1[i]==s2[j])
{
i=i+1;
j=j+1;
}
else {
j=0;
start=start+1;
i=start;
}
}
if(j==s2.size())
return start;
else return -1;
}
int main()
{
while(cin>>s1>>s2)
{
cout<<find(s1,s2)<<endl;
}
return 0;
}