题目描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210313092322275.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FhcWFxYTY2Ng==,size_16,color_FFFFFF,t_70)
分析:找出最长公共后缀,可以先把字符串翻转,转换成找前缀方便处理。完后循环遍历即可
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
string str[105];
int main(){
int n;
cin>>n;
getchar();
int len=256;
string result="";
for(int i=0;i<n;i++){
getline(cin,str[i]);
len=min(len,(int)str[i].length());
reverse(str[i].begin(),str[i].end());
}
bool flag=true;
for(int i=0;i<len&&flag;i++){
for(int j=1;j<n&&flag;j++){
if(str[j][i]!=str[0][i]){
flag=false;
}
}
if(flag){
result+=str[0][i];
}
}
reverse(result.begin(),result.end());
if(result==""){
printf("nai\n");
}
else{
printf("%s\n",result.c_str());
}
}