题目大意:给出N个字符串,每个字符串的长度为M,要求你求出一个字符串,这个字符串的每个位置拥有这N个字符串相应位置字符频数出现最多的那个字符,并求出这N个字符串共有多少个字符和所求字符串不同
#include<cstdio>
#include<algorithm>
using namespace std;
#define maxm 55
#define maxn 1010
char str[maxm][maxn];
int main() {
int test, M, N;
scanf("%d",&test);
while(test--) {
scanf("%d%d",&M, &N);
for(int i = 0; i < M; i++)
scanf("%s",str[i]);
int cnt = 0, num_A, num_C, num_G, num_T, MAX;
for(int i = 0; i < N; i++) {
num_A = num_C = num_G = num_T = 0;
for(int j = 0; j < M; j++) {
switch(str[j][i]) {
case 'A': num_A++;break;
case 'C': num_C++;break;
case 'G': num_G++;break;
case 'T': num_T++;
}
}
MAX = max(num_A,max(num_C,max(num_G,num_T)));
cnt += M - MAX;
if(MAX == num_A)
printf("A");
else if(MAX == num_C)
printf("C");
else if(MAX == num_G)
printf("G");
else
printf("T");
}
printf("\n");
printf("%d\n",cnt);
}
return 0;
}