/*
* 善用getchar()去除缓存区的控制符,以免其影响后续字符矩阵输入
*/
#include<stdio.h>
#include<string.h>
char N[55][1010];
int main()
{
char s1[] = "ACGT", ans[55];
int s2[5] ={0};
int Ham = 0;
int m,n;
scanf("%d%d", &m, &n);
getchar();
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++)
scanf("%c", &N[i][j]);
getchar();
}
for(int j = 0; j < n; j++) {
memset(s2, 0, sizeof(s2));
for(int i = 0; i < m; i++) {
switch(N[i][j]) {
case 'A': s2[0]++; break;
case 'C': s2[1]++; break;
case 'G': s2[2]++; break;
case 'T': s2[3]++; break;
}
}
int max = s2[0], temp = 0;
for(int i = 1; i < 4; i++) {
if(max < s2[i]) {
max = s2[i];
temp = i;
}
}
Ham += (m - max);
ans[j] = s1[temp];
}
for(int i = 0; i < n; i++) {
printf("%c", ans[i]);
}
printf(", %d ", Ham);
return 0;
}
习题 3-7 DNA序列(DNA Consensus String,ACM/ICPC Seoul 2006,UVa 1368)
最新推荐文章于 2022-01-24 22:36:38 发布