AcWing 779. 最长公共字符串后缀
原题链接
困难
作者:
lhj
,
2021-04-10 18:34:43
,
所有人可见
,
阅读 292
C++ 代码
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 210;
string a[maxn];
int main(){
int N;
while(cin >> N,N!=0){
int b[210] = {0};//放每个字符串的长度
int num=0;//记录有几个位置重复
int min1;//记录字符串最小的个数
for(int i = 0;i < N;i++){
cin >> a[i];
b[i] = a[i].size();
}
min1 = b[0];
for(int i =0;i < N;i++){
if(min1 >b[i])
min1 = b[i];
}
int flag = 0;
for(int i =0;i < min1;i++){
if(flag == 1) break;
else{//
for(int j =0;j < N-1;j++){//依次比较每个字符串最后的字符
if(a[j][b[j]-1-i] != a[j+1][b[j+1]-1-i]){
flag =1;
break;
}
}
//cout <<i;
if(flag == 0)num++;
}
}
if(num){//随便找的第一个字符串,输出重复的就行
for(int i = b[0]-num;i<b[0]; i++){
cout<<a[0][i];
}
}
if(num >= 0) cout <<endl;
}
return 0;
}