擅长:python、mysql、java
<p>因为你的片段是被洗牌的,你的算法需要考虑到这一点;目前,你只是在片段中循环一次,如果它们的顺序不正确,就不太可能包含多个片段。例如,假设你有5个片段,我将根据它们在序列中的顺序来引用它们。现在碎片有点乱了:</p>
<p>1-3-2-4-5</p>
<p>你的算法将从1开始,跳过3,然后在2上匹配,最后加一个基数。然后检查4和5,然后完成,永远不会到达碎片3。在</p>
<p>你可以很容易地解决这个问题,每次你添加一个基时都重新开始循环,但是,对于大量的基,这将很难扩展。相反,我建议将您的片段加载到<a href="http://en.wikipedia.org/wiki/Trie" rel="nofollow">trie</a>,然后在每次添加碱基时在trie中搜索下一个片段,直到为每个片段添加了一个碱基,或者您再也找不到匹配的片段。在</p>