【问题标题】:Finding the smallest number of substrings to represent a set of strings找到最小数量的子字符串来表示一组字符串
【发布时间】:2012-02-08 14:54:05
【问题描述】:

我想找到一组不重叠的子字符串,它们可以连接起来代表一组给定的字符串。假设这组给定的字符串是

abc0def
zabc1def
abc2defg

那么可以连接起来形成上述完整字符串集的最小非重叠子字符串集是

abc
def
0
1
2
g
z

澄清一下:不重叠是指集合中没有任何成员以相同的字符序列开始或结束。

【问题讨论】:

    标签: string algorithm set


    【解决方案1】:

    使用字符串构建有向图,以字符为顶点,从字符指向后面的字符的弧。对于任何具有两个或更多入度的顶点,删除所有传入的弧。同样,对于那些出度为两个或更多的,删除所有的出弧。删除这些后,图的其余组件是表示子字符串的路径图;只需按照路径构建子字符串。

    您还需要为字符串的开头和结尾引入虚拟顶点。这避免了 abcde 和 bcd 等问题。

    【讨论】:

    • 如果字符串集是 abcd、abc 和 bcd,这种方法如何工作?
    猜你喜欢
    • 2012-06-30
    • 2021-06-11
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2019-07-16
    • 1970-01-01
    相关资源
    最近更新 更多