一、思路
后向前寻找最长公共后缀
二、代码
#include <iostream>
#include <string>
using namespace std;
int main()
{
int N, min_i = 0;
cin >> N;
string str[100];
getline(cin , str[0]);
for( int i = 0; i < N; ++i )
{
getline(cin, str[i]);
if( str[i].size() < str[min_i].size() )
min_i = i;
}
for( int len = 1; len <= str[min_i].size(); ++len )
for( int i = 1; i < N; ++i )
if( str[i - 1][str[i - 1].size() - len] != str[i][str[i].size() - len] )
{
if( len > 1 )
cout << str[i].substr(str[i].size() - len + 1, len - 1);
else cout << "nai";
return 0;
}
cout << str[min_i];
}