题目描述
题目很复杂,反复看y总的解析才有点懂
样例
#include<iostream>
using namespace std;
int main(){
string s1,s2,s;
char c;
while(cin>>c,c!=',')
s=s+c;
while(cin>>c,c!=',')
s1=s1+c;
while(cin>>c)
s2=s2+c;
if(s.size()<s1.size()||s.size()<s2.size()) puts("-1");
else{
int t=0;
while(t+s1.size()<=s.size()){
int k=0;
while(k<s1.size()){
if(s[t+k]!=s1[k]) break;
k++;
}
if(k==s1.size()) break;
t++;
}
int r=s.size()-s2.size();
while(r>=0){
int k=0;
while(k<s2.size()){
if(s[r+k]!=s2[k]) break;
k++;
}
if(k==s2.size()) break;
r--;
}
t=t+s1.size()-1;
if(t>=r) puts("-1");
else printf("%d\n",r-t-1);
}
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla