1.题目
今天第一题
输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量 小。 两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的 Hamming距离为2(左数第1, 4个字符不同)。输入整数m和n(4≤m≤50, 4≤n≤1000),以及m个长度为n的DNA序列(只包含字母 A,C,G,T),输出到m个序列的Hamming距离和最小的DNA序列和对应的距离。 如有多解,要求为字典序最小的解。 例如,对于下面5个DNA序列,最优解为TAAGATAC。
TATGATAC
TAAGCTAC
AAAGATCC
TGAGATAC
TAAGATGT
2.思路
获取每列的出现次数最多的字母即可。 如果要求hamming,则对每列执行(m减去该列次数最多的字母),相加其中的结果即可。
3.代码
package basic.第三章;
import java.util.Scanner;
/**
* DNA序列(DNA Consensus String)
* 题目:
* 输入m个长度均为n的DNA序列,求一个DNA序