测试点:
测试点4:为了防止超时,及时break;
测试点6:遍历的最大范围。
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
using namespace std;
int main(){
char s[10005],p[10005];
scanf("%s %s",s,p);
int t;
int len1=strlen(s),len2=strlen(p);
int mixn=0,min=len1;
for(int i=0;i<len1-len2;i++){ // i的最大值要确定好
if(s[i]==p[0]){
t=i;
for(int j=0;j<len2;){
if(s[i]==p[j]){
i++;
j++;
if(min<=i-t)
break; //提前break,不然超时
}
else{
i++;
}
}
if(min>i-t){
mixn=t;
min=i-t;
}
i=t;
}
}
// cout<<mixn<<" "<<min<<endl;
char r[10005];
strncpy(r,s+mixn,min);
cout<<r;
return 0;
}