算法入门经典
3-7dna序列
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
char c[55][1005];
char s[1005];
int main()
{
int a[4];
memset(a, 0, sizeof(a));
memset(c, 0, sizeof(c));
int t;
cin >> t;
while(t--)
{
int m, n;
scanf("%d", &m);
scanf("%d", &n);
for(int i = 0; i < m; ++i)
{
cin >> c[i];
}
for(int j = 0; j < n; ++j)
{
for(int i = 0; i < m; ++i)
{
if(c[i][j] == 'A')
{
++a[0];
}
else if(c[i][j] == 'C')
{
++a[1];
}
else if(c[i][j] == 'G')
{
++a[2];
}
else if(c[i][j] == 'T')
{
++a[3];
}
}
int max = -1;
for(int i = 0; i < 4; ++i)
{
if(a[i] > max)
{
max = a[i];
}
}
if(max == a[0])
{
s[j] = 'A';
}
else if(max == a[1])
{
s[j] = 'C';
}
else if(max == a[2])
{
s[j] = 'G';
}
else if(max == a[3])
{
s[j] = 'T';
}
memset(a, 0, sizeof(a));
}
cout << s << endl;
int num = 0;
for(int j = 0; j < n; ++j)
{
for(int i = 0; i < m; ++i)
{
if(s[j] != c[i][j])
{
++num;
}
}
}
memset(c, 0, sizeof(c));
memset(s, 0, sizeof(s));
if(t == 0)
{
cout << num << endl;
}
else
{
cout << num << endl;
}
}
return 0;
}
```统计每列,选出次数最多的字母,为结果。