C文本算法

时间:2011-05-09 11:31:05

标签: c algorithm

我对文本算法的一些事情很好奇。

例如我们有二进制字:1011101110001101 如何在这个单词中搜索特定的固定子序列?

例如如何在具有相同数量的1和0的单词中找到最长的固定子序列(让我们称之为LFS)?

另外,如何找到LFS中的1比0更多的LFS?

示例: 字:1001010 我们正在寻找具有相同数量的1和0的LFS。

所以这个LFS将是100101

但是如果1比0更多,我们将拥有:101

如何比O(n ^ 2)更快地解决这个问题?

克里斯。

1 个答案:

答案 0 :(得分:4)

您可以输入Trie

这将帮助您找到LFS字符串。

您可以将创建算法更改为计数1和0,然后您可以在子串节点上轻松找到这些数字。

同时查看Suffix Tree ..

创造= O(n)
对于搜索,你可能会做类似BFS的事情,也就像O(N)