AcWing 779. 最长公共字符串后缀
原题链接
简单
作者:
.._860
,
2024-11-07 11:04:19
,
所有人可见
,
阅读 1
#include <bits/stdc++.h>
using namespace std;
int n;
const int N = 210;
string str[N];
int main()
{
while(cin>>n, n != 0)
{
for(int i = 0; i < n; i ++ )
{
string s;
cin>>s;
str[i] = s;
}
string p = str[0]; //将此字符串作为后缀
//从后面开始匹配
for(int i = 1; i < n; i ++ )
{
int j = p.size() - 1, str_len = str[i].size() - 1;
while(j >= 0 && str_len >= 0 && str[i][str_len] == p[j]) j--, str_len--;
p = p.substr(j + 1, p.size() - j); //后缀是除了第一个字符以外的字符串,当不匹配的时候需要移到最后匹配的位置,因为前面j--.
}
if(p.empty()) cout << "" << endl;
else cout << p << endl;
}
return 0;
}