第33133题 程序题
DNA序列整合

人类基因组计划的第一阶段于 2000 年 6 月 26 日胜利结束,我国科研工作者圆满地完成了其中的1%的测序工作。众所周知,组成 DNA 的碱基有四种:腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T)。对任意两个人,其染色体上的 DNA 序列大部分相同,但总会有少数碱基对不同。这种不同是由基因的变异引起,但每个人的变异位置不尽相同。这样,对于大部分位点来说,很可能的情形是:大部分人在该位点上的碱基是一致的(没有发生变异),少数人具有不同的碱基(发生了变异)。

这就给科学家一个启示:在测序过程中,若仅仅使用一个人的样本,在很多位点上测出的结果就不具有代表性;而如果能测出多个人的序列,则有可能“整合”出一段具有人类共性的序列出来,这样更有利于研究。

例如,假设我们要检测人的某一段 DNA 序列,得到 4 人的样本:

AAAGGCCT
AGAGCTCT
AAGGATCT
AAACTTCT

整合规则:

  1. 取出在每个位置(即某一列)上出现次数最多的碱基作为整合后该位置上的碱基;
  2. 若某个位置出现次数最多的碱基不止一种,则优先选择 A,其次是 C、G 和 T。

因此,对于上述 4 个样本,整合以后的结果为:AAAGATCT

请编写一个程序,输入一组 DNA 序列,然后对它们进行整合,并将整合以后的结果打印出来。

输入描述

先输入一个正整数 N(2≤N≤10),然后再输入 N 行,每一行是一个 DNA 序列,它们具有相同的长度。

输出描述

一个字符串,即整合以后的序列。

输入样例1

4
AAAGGCCT
AGAGCTCT
AAGGATCT
AAACTTCT

输出样例1

AAAGATCT
编辑模式
程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析