题目描述
样例
算法1
(暴力枚举) $O(n^2)$
时间复杂度
参考文献
C++ 代码
//菜鸡终于作出来了
//第一道字符串难题
//左边和右边的单独处理
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main(){
string s,s1,s2;
getline(cin,s,',');
int len = s.size();
getline(cin,s1,',');
int len1 = s1.size();
getline(cin,s2);
int len2 = s2.size();
int leftindex = -1,rightindex = -2 ;
if(len1 > len || len2 > len)
{
cout<<"-1"<<endl;
return 0;
}
else{
//左边
bool lflag = true;
for(int i = 0; i + len2 < len && lflag == true ;i++){
int t = 0;
int j = i;
while(s[j] == s1[t]){
++t;
++j;
if(t == len1 ){
j--;
leftindex = j;
break;
}
}
if( t == len1) lflag = false;
//左边找不到的情况 leftindex = -1;
}
//右边
bool rflag = true;
for(int i = len - 1 ; i >= len1 && rflag == true; i-- ){
int t = 0;
int j = i;
while(s[j] == s2[t] && t < len2 && j < len){
++t;
++j;
if(t == len2){
rightindex = i;
break;
}
}
if(t == len2) rflag = false;
}
}
if(leftindex == -1|| rightindex == -2 || leftindex >= rightindex) cout <<"-1";
else {cout<<(rightindex - leftindex - 1) <<endl ;}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla