刷清橙OJ--A1051.DNA序列
来源:互联网 发布:炫踪网络 金利科技 编辑:程序博客网 时间:2024/06/04 18:39
问题:
A1051. DNA序列
时间限制:1.0s 内存限制:512.0MB
总提交次数:2245 AC次数:1223 平均分:60.32
问题描述
人类基因组计划的第一阶段于2000年6月26日胜利结束,我国的科研工作者圆满地完成了其中的1%的测序工作。
众所周知,对于任意两个人来说,他们的染色体上的DNA序列大部分是相同的(否则就不是同一物种了),但是总会有少数碱基对不相同(否则世界上的人长得都一模一样了)。碱基的不同是由于基因的变异引起的。例如在某个人的DNA序列中,一位点上A突变成G。但每个人的DNA序列的变异位置都是不尽相同的。这样,对于大部分位点来说,很有可能是这么一种情况:大部分人在这个位点上的碱基是一致的(因为没有发生变异),少数人具有不同的碱基(因为发生了变异)。
这样就给我们一个启发:在测序的过程中,如果仅仅使用一个人的样本的话,在很多位点上测出的结果就不具有代表性;如果能够测出多个人的序列,那么就有可能“整合”出一段具有人类共性的序列出来,这样更有利于研究。
比如说,我们要测人的某一段的DNA序列,得到了4个人的样本:
AAAGGCCT
AGAGCTCT
AAGGATCT
AAACTTCT
按照如下:
1、 取出在每一个位置上出现次数最多的碱基作为整合后该位置上的碱基
2、 如果有一个位置上出现次数最多的碱基不止一种,那么在出现次数最多的碱基中,优先选择A,其次C,再次G,最后T。
按照上边的规则,整合后的序列为:
AAAGATCT
输入格式
输入数据的第一行是一个数字N(2<=N<=10),代表DNA序列的个数
接下来有N行,每行都是一个由AGCT组成的字符串,代表每个DNA序列,保证这些序列拥有相同的长度
序列的长度在2到100之间
输出格式
仅输出一个字符串,代表整合后的DNA序列
样例输入
4
AAAGGCCT
AGAGCTCT
AAGGATCT
AAACTTCT
样例输出
AAAGATCT
代码:
#include <iostream>#include <stdio.h>#include <string.h>#include "stdlib.h"#include <math.h>#include <algorithm>using namespace std;char s[10][110];char ss[110];char out1[5]="ACGT";int main(){int n;int a[4] = { 0 };scanf("%d",&n);for(int i=0;i<n;i++)scanf("%s",s[i]);int length,j;length = strlen(s[0]);for(int i=0;i<length;i++){memset(a,0,sizeof(a));for(j=0;j<n;j++){if(s[j][i]=='A')a[0]++;else if(s[j][i]=='C')a[1]++;else if(s[j][i]=='G')a[2]++;else if(s[j][i]=='T')a[3]++;}int max = a[0],out=0;for(int m=1;m<4;m++){if(a[m]>max){max = a[m];out = m;}}printf("%c",out1[out]);} return 0;}个人想法:唉,乍一看好难,还是理解能力不好。代码来自试题讨论。
阅读全文
0 0
- 刷清橙OJ--A1051.DNA序列
- 清澄A1051. DNA序列
- 华为OJ:DNA序列
- 【华为OJ】DNA序列
- 华为oj DNA序列
- 华为oj DNA序列
- OJ---DNA序列*
- 【华为OJ】DNA序列
- 华为OJ:DNA序列
- DNA序列(OJ)
- 华为OJ(DNA序列)
- 华为OJ DNA序列 Java
- 【华为OJ】【089-DNA序列】
- 华为OJ 初级:DNA序列
- 华为oj初级 DNA序列
- OJ平台——DNA序列
- 华为oj题目 DNA序列 [java语言]
- 华为OJ——DNA序列
- 函数执行顺序 打印顺序
- 《Python数据分析与挖掘实战》笔记(五):数据建模
- C++面向对象思想(1):类的设计
- vuejs实现数据驱动视图原理
- Java-字符串反转
- 刷清橙OJ--A1051.DNA序列
- shell find命令用法
- 学Java入门篇:Java类的基本内容
- 软件架构师书籍
- 从客户端中检测到有潜在危险的 Request.Form值
- CountDownLatch的用法
- JVM 指令助记符
- Python关于运行出现错误IndentationError: unindent does not match any outer indentation level
- Linux学习笔记