1368 - DNA Consensus String
来源:互联网 发布:跳跃网络 徐智阳 电话 编辑:程序博客网 时间:2024/06/04 23:22
#include<stdio.h>
#include<string.h>
char s[100][2000];
int main()
{
int N,j,m,n,i,e,q;
char p;
scanf("%d",&N);
for(e=0;e<N;e++)
{
scanf("%d%d",&m,&n);
int A=0,T=0,G=0,C=0;//初始化
for(i=0;i<m;i++)
scanf("%s",s[i]);
q=0;
for(i=0;i<n;i++)//n代表每个序列的长度
{
for(j=0;j<m;j++)//m代表DNA串数
{
switch(s[j][i])
{
case 'A':A+=1;break; //统计每列的字母出现次数
case 'T':T+=1;break;
case 'G':G+=1;break;
case 'C':C+=1;break;
}
}
if(A>=T&&A>=G&&A>=C) //打印出现次数最多的和字典序最小的字母
{printf("A");p='A';}
else if(T>A&&T>G&&T>C)
{printf("T");p='T';}
else if(G>A&&G>C&&G>=T)
{printf("G");p='G';}
else if(C>A&&C>=T&&C>=G)
{printf("C");p='C';}
A=T=G=C=0; //千万别忘了重新初始化
int t;
//用q来统计Hamming距离
if(p!=s[t][i])
q+=1;
}
if(i==n-1)
printf("\n%d\n",q);
}
}
return 0;
#include<string.h>
char s[100][2000];
int main()
{
int N,j,m,n,i,e,q;
char p;
scanf("%d",&N);
for(e=0;e<N;e++)
{
scanf("%d%d",&m,&n);
int A=0,T=0,G=0,C=0;//初始化
for(i=0;i<m;i++)
scanf("%s",s[i]);
q=0;
for(i=0;i<n;i++)//n代表每个序列的长度
{
for(j=0;j<m;j++)//m代表DNA串数
{
switch(s[j][i])
{
case 'A':A+=1;break; //统计每列的字母出现次数
case 'T':T+=1;break;
case 'G':G+=1;break;
case 'C':C+=1;break;
}
}
if(A>=T&&A>=G&&A>=C) //打印出现次数最多的和字典序最小的字母
{printf("A");p='A';}
else if(T>A&&T>G&&T>C)
{printf("T");p='T';}
else if(G>A&&G>C&&G>=T)
{printf("G");p='G';}
else if(C>A&&C>=T&&C>=G)
{printf("C");p='C';}
A=T=G=C=0; //千万别忘了重新初始化
int t;
for(t=0;t<m;t++)
{//用q来统计Hamming距离
if(p!=s[t][i])
q+=1;
}
if(i==n-1)
printf("\n%d\n",q);
}
}
return 0;
}
解题的关键是怎么找这个最小的序列,只需要按列统计每列出现次数最多的字母就是要找的字母,每列都找到就找到最小序列了。
0 0
- 1368 - DNA Consensus String
- 1368 - DNA Consensus String
- 1368 - DNA Consensus String
- 1368 - DNA Consensus String
- 1368 DNA Consensus String
- UVA 1368 - DNA Consensus String
- uva 1368 DNA Consensus String
- Uva-1368-DNA Consensus String
- UVa 1368 DNA Consensus String
- UVA 1368 DNA Consensus String
- UVA 1368 DNA Consensus String
- UVa:1368 DNA Consensus String
- uva 1368 - DNA Consensus String
- UVaOJ 1368 - DNA Consensus String
- UVa 1368 - DNA Consensus String
- UVa 1368 - DNA Consensus String
- UVa 1368 DNA Consensus String
- UVa 1368 - DNA Consensus String
- NYOJ 字母小游戏 273(gets与scanf区别)
- 算菜价 2090 (好邪乎的一道题,没有输出)
- UML之“机房收费系统”
- 【Github教程】史上最全github使用方法:github入门到精通
- 黑马程序员—java基础学习--网络编程
- 1368 - DNA Consensus String
- 1~10000这10000个数的整数哈密顿圈
- 第5章 操作符和函数
- Window下git和github下的代码版本多人开发维护
- 第10课第1节 内核启动流程分析之编译体验
- 01字串
- Java图形用户界面设计
- corenlp-python的README.md翻译
- Android 自定义View