例如,我试图找出如何将列表中的重叠字符串合并在一起
['aacc','accb','ccbe']
我会得到
['aaccbe']
下面的代码适用于上面的示例,但是在以下情况下,它不能为我提供所需的结果:
s = ['TGT','GTT','TTC','TCC','CCC','CCT','CCT','CTG','TGA','GAA','AAG','AGC','GCG','CGT','TGC','GCT','CTC','TCT','CTT','TTT','TTT','TTC','TCA','CAT','ATG','TGG','GGA','GAT','ATC','TCT','CTA','TAT','ATG','TGA','GAT','ATT','TTC']
a = s[0]
b = s[-1]
final_s = a[:a.index(b[0])]+b
print(final_s)
>>>TTC
我的输出显然不正确,我不知道为什么在这种情况下它不起作用。请注意,我已经用相邻的重叠字符串组织了列表
使用^{} 查找重叠并适当连接,然后使用^{} 应用整个列表
输出
您可以使用trie来存储正在运行的子字符串,并更有效地确定重叠。当可能发生重叠时(即对于输入字符串,trie中存在一个以输入字符串开头或结尾的字母的字符串),将进行广度优先搜索以查找最大可能重叠,然后将字符串的剩余位添加到trie:
把它们放在一起
输出:
相关问题 更多 >
编程相关推荐