AcWing 779. 最长公共字符串后缀
原题链接
简单
作者:
凌sir
,
2024-12-20 00:22:41
,
所有人可见
,
阅读 2
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int n;
while(cin>>n,n!=0){
vector<string> a(n);
vector<string> b(n);
string c = "";
cin.ignore();
for(int i = 0; i < n; i++){
getline(cin,a[i]);
}
vector<int> x(n);
for(int i = 0; i < n; i++){
x[i] = a[i].size();
}
int minLen = a[0].size();
for(int i = 1; i < n; i++){
if(x[i] < minLen){
minLen = x[i];
}
}
while(minLen){
bool allSame = true;
for(int j = 0; j < n; j++){
b[j] = a[j].substr(a[j].size() - minLen, minLen);
}
for(int j = 0; j < n - 1; j++){
if(b[j]!= b[j + 1]) {
allSame = false;
break;
}
}
if(allSame){
c = b[0];
break; // 已经找到最长公共后缀,直接退出循环
}
else{
minLen--;
}
}
cout << c << endl;
}
return 0;
}