问题在哪里?输出是6
#include<bits/stdc++.h>
using namespace std;
int n;
char c;
string s[1001];
int t[101];
int ans;
int f(string a,string b){
int la=a.size();
int lb=b.size();
for(int a1=1;a1<min(la,lb);a1++){
string sa=a.substr(la-a1,a1);
string sb=b.substr(0,a1);
if(sa==sb){
return a1;
}
}
return 0;
}
void dfs(int p,int len){
ans=max(ans,len);
for(int k=1;k<=n;k++){
if(t[k]>=2)continue;
int l=f(s[p],s[k]);
if(l>=1){
t[k]++;
dfs(k,len+s[k].length()-len);
t[k]--;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
cin>>c;
for(int j=1;j<=n;j++){
memset(t,0,sizeof t);
if(s[j][0]==c){
t[j]=1;
dfs(j,s[j].length());
}
}
cout<<ans;
return 0;
}