字符串具有个子序列,但是它们通常并不完全不同。找到任何子序列的最大频率的复杂性是什么?
例如,字符串“子序列”包含子序列“ sue”的7个副本,这是最大值。
http://ideone.com/UIp3t上的示例暴力代码
有相关的结构定理吗?这两个都是错误的:
- 最大频率子序列中最长的序列是唯一的
- 任何长度的最大频率序列以为单峰
可能相关的链接:
- 计算#个不同的子序列http://11011110.livejournal.com/254164.html
- 多个来源的相关比赛问题http://www.spoj.pl/problems/CSUBSEQS/
- 相关论文http://dx.doi.org/10.1016/j.tcs.2008.08.035
十天后编辑:感谢您的关注!我想知道这是否会带来一个很好的多项式时间可解决的编程竞赛问题。我猜不是,但是我希望稍后再考虑。
5
一个可能很幼稚的初始问题:是否很清楚这个问题甚至在NP中?这就是说:对于确定在n个字符串中是否存在至少出现k个子序列的问题,证书将是什么样?例如,列出所有指示给定子序列实例的索引元组将无法针对字符串aaa ... aa(虽然输入很无聊,但具有大约事件。
—
Niel de Beaudrap
@Niel de Beaudrap:我认为我们可以通过动态编程将出现次数视为多项式时间内的子序列,从而有可能将子序列本身用作证书。
—
伊藤刚(Tsuyoshi Ito)2012年
我有点困惑:问题是“给定一个字符串s,找到出现次数最多的子序列吗?”
—
Suresh Venkat 2012年
@SureshVenkat:是的,这是我的理解。例如,给定一个 X 个序列作为输入,正确的答案将是一个 X 序列。
—
杰夫·杰夫
@ marzio-de-biasi:您链接到的问题是不同的(并且容易得多):在这里您得到了子序列。
—
大卫