判断一组字符串中n-1条字符串是否都是另外一条的字串。
先找到最长串,利用string中find()函数,没找到返回string::npos;找到计数加一,看总数是否等于n-1。
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=1e5+10;
string str[N];
int main(){
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int max=0,pos=0,cnt=0;
for(int i=0;i<n;i++){
cin>>str[i];
int len=str[i].length();
if(len>max){
max=len;
pos=i;
}
}
for(int i=0;i<n;i++){
if(str[pos].find(str[i])!=string::npos){ //存在时
cnt++;
}
}
if(cnt==n)
cout<<str[pos]<<endl;
else cout<<"No"<<endl;
}
return 0;
}