AcWing 779. 最长公共字符串后缀
原题链接
困难
作者:
congee
,
2021-02-16 22:11:11
,
所有人可见
,
阅读 265
//779.最长公共字符串后缀
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin >> n && n != 0)
{
string str[n];
int len = 200;
for(int i = 0; i < n; i++)
{
cin >> str[i];
if(str[i].size() < len) len = str[i].size(); // 确定最小长度字符串的长度
}
int k = 1; //记录从后往前相同字符的个数
int x = len;
while(x --) // 最多从后往前判断 x(len) 个字符
{
int t = 0;// 记录通过判断的字符串数量
char c = str[n - 1][str[n - 1].size() - k];//取出要进行比较的字符
int m = n;
while (m--) {
if (c == str[m][str[m].size() - k])
{
t++; //比较结果为 true 则通过判断的字符串数量 t 加 1
} else break;
}
if(t == n) k++; //若通过判断的字符串数量t等于字符串数量n,则说明该位置的字符相同,k++
else break;
}
if(k == 1) puts("");
else
{
cout << str[0].substr(str[0].size() - (k - 1));
puts("");
}
}
return 0;
}