代码
#include <iostream>
using namespace std;
const int N=200;
int n;
string str[N];
int main()
{
while(cin>>n,n)
{
int len =1000;
//循环输入字符串找到长度最短的数组
for(int i=0;i<n;i++)//不能等于nn是空字符串
{
cin>>str[i];
if(str[i].size()<len)len=str[i].size();
}
//遍历除了第一个字符串以外的所有字符串的后缀是否和第一个字符串相等
while(len)//确定字符串的后缀长度 等于直接输出零
{
bool success = true;
for(int i = 1;i < n;i++)
{
bool is_name=true;
for(int j = 1; j<=len ; j++)
{
if(str[0][str[0].size()-j]!=str[i][str[i].size()-j])//S=s[0]S[0]等价于s[0][0];
{
is_name=false;
break;
}
}
if(!is_name)//判断是否有不匹配的地方
{
success=false;
break;
}
}
if(success)
{
break;
}
len--;
}
cout<<str[0].substr(str[0].size()-len)<<endl;
}
return 0;
}