#include using namespace std; const int N = 210; string s[N]; //n是每个输入的字符串的个数 int n; //len是用来控制有多少个字符是相同的 int len; int main() { //优化输入 ios::sync_with_stdio(false); while (cin >> n && n) { //记录最大长度 int sz = 0; //接收字符串数组,并且反转 for (int i = 0; i < n; i++) { cin >> s[i]; reverse(s[i].begin(), s[i].end()); sz = max(sz, (int) s[i].size()); } //标识 bool flag = false; //遍历每一个可能的长度,没有终止边界,内部肯定存在break for (len = 0; len < sz; len++) { //遍历每一个字符串 for (int i = 0; i < n; i++) { //以每一个字符串的这一位与每一个字符串的这一位进行对比 if (s[0][len] != s[i][len]) { flag = true; break; } } if (flag) break; } //字符串的相同后缀长度 if (len > 0) { //还是拿第一个字符串为操作样例,把它反转回来 reverse(s[0].begin(), s[0].end()); //利用substr截取它的后面数len位 cout << s[0].substr((int) s[0].size() - len) << endl; } else cout << "" << endl; } return 0; }