AcWing 779. 最长公共字符串后缀
原题链接
困难
#include <iostream>
using namespace std;
#define N 20
int main()
{
int n;
string s[N];
while(cin >> n,n!=0)
{
int len = 1000;
for(int i=0;i<n;i++)
{
cin >> s[i];
if(len > s[i].size()) len = s[i].size();//最小字符串长度
}
string s1;
int i;
for(i=len;i>=0;i--)
{
s1=s[0].substr(s[0].size()-i,i);
// cout << "要得到的后缀长度" << s1 << endl;
bool isname = true;
for(int j=1;j<n;j++)//遍历除了第一个字符串的其他字符串
{
s[j]=s[j].substr(s[j].size()-i,i);
if(s[j]!=s1)
{
isname = false;
break;
}
}
if(isname)break;
}
cout << s[0].substr(s[0].size()-i) << endl;
}
return 0;
}