标签:
Description
Input
Output
Sample Input
3 2 GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA GATACTAGATACTAGATACTAGATACTAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA GATACCAGATACCAGATACCAGATACCAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA 3 CATCATCATCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ACATCATCATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACATCATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
Sample Output
no significant commonalities AGATAC CATCATCAT
题解:求最长的公共字串并且按照字典序找最小的一个,由于长度小,暴力。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
string s[20];
int main()
{
int ncase;
cin>>ncase;
while(ncase--)
{
int n;
scanf("%d",&n);
for(int i = 0;i < n;i++)
{
cin>>s[i];
}
bool flag = false;
string res = "Z";
for(int i = 60;i > 2;i--)
{
for(int j = 0;j <= 60 - i;j++)
{
string s1(s[0],j,i);
bool f = true;
for(int k = 1;k < n;k++)
{
if(s[k].find(s1) == string::npos)
{
f = false;
break;
}
}
if(f)
{
if(res > s1)
{
res = s1;
}
flag = true;
}
}
if(flag)
{
break;
}
}
if(flag)
{
cout<<res<<endl;
}
else
{
cout<<"no significant commonalities\n";
}
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/wang2534499/article/details/47973931