用的substr.
首先,我们的知道substr的一种用法,比较多的都是两个参数,但其实,一个参数也可以。 如下:
我们在此处用的就是第1种方法。
其余的注释很详细了吧…应该:
#include<bits/stdc++.h>
using namespace std;
int maxlen=0;
int newlen=0;
int n;
string str[22];
int ok[22];
int pipei(string &str1,string &str2) {
if(str1.length()==1) {
if(str2[0]==str1[0])
return str2.length();
return 0;
} else {
for(int i=1; i<str1.length(); i++) {
string temp1=str1.substr(str1.length()-i);
string temp2=str2.substr(0,i);
if(temp1==temp2)
return str2.length()-i;
}
}
return 0;
}
void dfs(string &s) {
for(int i=0; i<n; i++) {
int temp=pipei(s,str[i]);
if(temp && ok[i]<2) {
ok[i]++;
newlen+=temp;
if(newlen>maxlen) maxlen=newlen;
dfs(str[i]);
ok[i]--;
newlen-=temp;
}
}
}
int main() {
cin>>n;
for(int i=0; i<n; i++)
cin>>str[i];
string cr;
cin>>cr;
dfs(cr);
cout<<maxlen<<endl;
return 0;
}
注释写得真详细呀,点赞了
hhhh
您这注释写的,玄学呀
。。。
代码复制过来,注释给删了,QAQ