***先看最小的len,我要的就是有了最小len--从后往前相等到不相等要删去多少****
***** str[i][str[i].size()-j]相等网上for里j++,不相等一直往下len--****
#include <iostream>
#include <string>
#include <algorithm>
#define endl '\n'
using namespace std;
const int N=200;
int n;
string str[N];
int main(){
while(cin>>n,n)
{
int len=10000;
for(int i=0;i<n;i++)
{
cin>>str[i];
if(len>str[i].size())len=str[i].size();//要把他定义成二维数组吗
}
while(len)
{
bool success=true;//当前长度len下的所有字符串都具有相同的后缀。所以i<n
for(int i=1;i<n;i++)
{
bool is_same=true;//字符串与第一个字符串具有相同的后缀。
for(int j=1;j<=len;j++)//j=0,因为要-1-2-3
{
if(str[0][str[0].size()-j]!=str[i][str[i].size()-j])
{
is_same=false;
break;
}
}
if(!is_same)//why,为什么还要这个,break跳循环吗
{
success=false;//给了success
break;
}
}
if(success)break;//why,
len--;
}
cout<<str[0].substr(str[0].size()-len)<<endl;
}
return 0;
}