#include <string>
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int compare(const string &s1,const string &s2)
{
int length1 = s1.length();
int length2 = s2.length();
if(length1 != length2)
return 0;
int j = 0;
for(int i = 0;i < s1.length();i++)
{
if((s1[i] == 'A' && s2[j] == 'T') || (s1[i] == 'G' && s2[j] == 'C') || (s1[i] == 'T' && s2[j] == 'A') || (s1[i] == 'C') && s2[j] == 'G')
j++;
else
return 0;
}
return 1;
}
int main()
{
vector<string> dna;
int num,number;
cin >> num;
while(num--)
{
scanf("%d",&number);
while(number--)//输入一组dna数据
{
string temp;
cin >> temp;
dna.push_back(temp);
}
int flag[100] = {0};
int k1 = 0;
for(int i = 0;i < dna.size() - 1;i++)
for(int j = i + 1;j < dna.size();j++)
{
if(flag[i] == 0 && flag[j] == 0)//两条DNA都没有匹配过
{
int flg = compare(dna[i],dna[j]);
if(flg == 1)
{
flag[i] = 1;
flag[j] = 1;
k1++;
}
}
}
dna.clear();
printf("%d\n",k1);
}
return 0;
}
sicily 1035.DNA Matching
最新推荐文章于 2016-06-01 10:17:37 发布