不断的从母串 str 中取出和子串长度相等的临时子串 temp,与子串 str2 进行比较。如果没有找到子串,返回 -1;成功找到子串,返回子串首字母在母串中的位置,该位置从 0 开始。
///
代码测试用例有一个通过不了
//////
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int m,n,j,k,flag=0;
char a[100000],b[100000];
cin>>a>>b;
m=strlen(a);
n=strlen(b);//输入字符串长度;
for(j=0;j<=m-n;j++)
{
if(a[j]==b[0]){ //从母链里找和子链首字母相同的
flag=1;
for(k=0;k<n;k++){ //对照是否其余元素嵌合
if(a[j+k]!=b[k]){
flag=0;
}
} //若完全嵌合,则flag为1;
if(flag==1){
cout<<j;
break;//输出重合位置
}
}
}
if(flag==0){
cout<<-1;
}
}