#include <iostream>//两种方法 思路大概一致 一种是书上的一种是自己的
using namespace std;
int BFS(char S[],char T[])
{
int i=0,j=0;
while((S[i]!='\0')&&(T[j]!='\0'))
{
if(S[i]==T[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(T[j]=='\0')
return i-j+1;
else
return -1;
}
int BFA(char S[],char T[],int n,int m)
{
int i=0,j=0,count=0;
while(i<n-m+1)
{
while(S[i]==T[j]&&j<m)
{
count++;
i++;
j++;
}
if(count==m)
return i-j+1;
else
{
i=i-j+1;
j=0;
}
}
return -1;
}
int main()
{
int n=10,m=3;
char s[]={"abcefghij"};
char t[]={"cef"};
int a=BFS(s,t);
int b=BFA(s,t,n,m);
cout<<a<<b<<endl;
return 0;
}