用string自带find函数,s[i].find(s[j])表示字符串s[j]在s[i]中的首个字母位置,通过这个函数,如果返回值为0就说明j是i的前缀,否则如果i里不含j返回值是-1。
by zk2351265864 @ 2017-08-18 10:49:02
返回值不是-1@[zk2351265864](/space/show?uid=45463)
by Uzumaki @ 2018-07-20 08:33:43
```#include<bits/stdc++.h>
using namespace std;
int k=1,m,i;
int a[10000]= {0},l,ans,x,n;
string s[10000];
int main() {
cin>>m;
for(i=1; i<=m; i++)
cin>>s[i];
a[1]=1;
for(i=2; i<=m; i++) {
l=1;
for(x=i-1; x>=1; x--) {
ans=1;
for(n=s[x].size()-1; n>=0; n--) {
if(s[i][n]!=s[x][n]) {
ans=0;
break;
}
}
if(ans==0)continue;
else l=max(l,1+a[x]);
}
a[i]=l;
k=max(k,l);
}
cout<<k;
}```
帮你改了
by 老用户 @ 2018-10-21 20:54:42
@[caoyang1123](/space/show?uid=51742)
by 老用户 @ 2018-10-21 20:55:28
@[老用户](/space/show?uid=98773) 怎么坟挖挖的,不过也谢谢了
by sigland @ 2018-10-22 07:57:14
跨5年考古
by Hoks @ 2022-01-23 10:59:01
跨6年考古
by dsy2022 @ 2023-07-21 16:26:41
考古
by Wu_Zimo @ 2023-08-12 20:36:10