这是 最短的超 字符串 问题
:找到包含一组给定字符串作为子字符串的最短字符串。根据这份IEEE论文(不幸的是,您可能无法获得),准确地解决此问题是
NP-complete 。但是,可以使用启发式解决方案。
第一步,您应该找到所有属于其他字符串的子字符串的字符串并将其删除(当然,您仍然需要以某种方式记录它们相对于包含的字符串的位置)。可以使用广义后缀树有效地找到这些完全包含的字符串。
然后,通过重复合并重叠时间最长的两个字符串,可以保证产生一个长度不小于最小可能长度的4倍的解决方案。正如Zifre对KonradRudolph的回答的评论所建议的那样,应该可以通过使用两个基数树快速找到重叠大小。或者,您也许可以以某种方式使用广义后缀树。
抱歉,我无法为您找到一个体面的链接-
似乎没有Wikipedia页面,或有关此特定问题的任何可公开访问的信息。尽管未提供建议的解决方案,但此处已简要提及。



