微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 中针对每个字符的多个选项列表查找最长字符串子集的最佳方法

如何解决Python 中针对每个字符的多个选项列表查找最长字符串子集的最佳方法

我有一个简单的字符串和一个集合列表,其中每个集合是一个包含 2 个可能字符的位置,看起来像:

“AGTCG”

[('A','T'),('C','B'),('G',('T','X'),... ]>

我想在哪里找到最长的匹配。在这个例子中,它将是“TCG”。每组永远不会超过 2 个字符。我想出的最佳解决方案是使用字符组合(ACGT...、ACGX...、ACTT...等)生成每个可能的字符串,然后使用 difflab SequenceMatcher.find_longest_match 并找到最大的结果.我怀疑有更好的方法,但正在努力寻找其他选择。有没有更好的办法?

解决方法

解决了。不是一个精确的解决方案,而是我更大目标的解决方案,它允许绕过这一步。目标是产生对齐,因此如果集合每个位置只有一个字符,例如 ACGTACGT,则字符串 'AGTCG' 将尽可能对齐以产生 A-GT-CG-。在反思之后,与其在递归算法中寻找最大匹配,最好的方法是使用 Smith-Waterman 算法的修改版本。

https://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。