题目描述
blablabla
样例
#include <cstdio>
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int main ()
{
string str[210];
string minstr[210];
int n;
int len=0;
bool flag=false;
while(cin >> n && n!=0)
{
if(n == 1)
{
cin >>str[0];
cout << str[0] << endl;
continue;
}
flag = false;
len = 0;
for(int i=0;i<n;i++)
{
cin >> str[i];
reverse(str[i].begin(),str[i].end());
}
int minlen = 210;
for(int i=0;i<n;i++)
{
if(str[i].size() < minlen) minlen = str[i].size();
}
for(int i=minlen;i>0;i--)
{
for(int j=0;j<n;j++)
{
minstr[j] = str[j].substr(0,i);
// cout << minstr[j] << endl;
}
for(int j=1;j<n;j++)
{
if(minstr[j]!=minstr[j-1])
break;
if(minstr[j]==minstr[j-1]&&j==n-1)
{
len = i;
flag = true;
break;
}
}
if(flag == true) break;
}
if(flag == true)
{
reverse(minstr[0].begin(),minstr[0].end());
cout << minstr[0] << endl;
}
else cout << endl;
}
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
各种暴力写法,一个个子字符串比较