【发布时间】:2013-10-09 10:36:03
【问题描述】:
是否有一种算法可以通过给定的最大允许位置数(最大不匹配、最大汉明距离)生成字符串(DNA 序列)的所有可能字符串组合?
字母表是 {A,C,T,G}。
字符串AGCC 和最大不匹配数2 的示例:
Hamming distance is 0
{AGCC}
Hamming distance is 1
{CGCC, TGCC, GGCC, AACC, ACCC, ATCC, AGAC, AGTC, ..., AGCG}
Hamming distance is 2
{?}
一种可能的方法是生成一个包含给定字符串的所有排列的集合,迭代它们并删除所有具有更大汉明距离的字符串。
这种方法非常消耗资源,给定的 20 个字符的字符串和 5 的最大汉明距离。
还有其他更有效的方法/实现吗?
【问题讨论】:
-
递归调用为返回的所有值生成距离 1 组合并放入 Set 以避免重复的函数
-
谢谢,我也试试那种解决办法。
标签: java algorithm permutation dna-sequence hamming-distance