给出若干个字符串,输出这些字符串的最长公共后缀。
#include<iostream>
#include<algorithm>
using namespace std;
string fun(string s,string t){
string sum;
int a=s.size(),b=t.size();
while(a&&b&&s[a-1]==t[b-1]){
sum+=s[a-1];
a--;b--;
}
reverse(sum.begin(),sum.end());
return sum;
}
int main(){
int m;
while(cin>>m&&m!=0){
if(m==1) {
string s;
cin>>s;
cout<<s;
}
else {
string a,b,c;
cin>>a;
for(int i=2;i<=m;i++){
cin>>b;
c=fun(a,b);
a=c;
}
cout<<a;
}
cout<<endl;
}
return 0;
}
输入格式
由不超过 55 组输入组成。
每组输入的第一行是一个整数 N�。
N� 为 00 时表示输入结束,否则后面会继续有 N� 行输入,每行是一个字符串(字符串内不含空白符)。
每个字符串的长度不超过 200200。
输出格式
每组数据输出一行结果,为 N� 个字符串的最长公共后缀(可能为空)。
数据范围
1≤N≤2001≤�≤200
输入样例:
3
baba
aba
cba
2
aa
cc
2
aa
a
0
输出样例:
ba
a