我对文本算法的一些事情很好奇。
例如我们有二进制字:1011101110001101 如何在这个单词中搜索特定的固定子序列?
例如如何在具有相同数量的1和0的单词中找到最长的固定子序列(让我们称之为LFS)?
另外,如何找到LFS中的1比0更多的LFS?
示例: 字:1001010 我们正在寻找具有相同数量的1和0的LFS。
所以这个LFS将是100101
但是如果1比0更多,我们将拥有:101
如何比O(n ^ 2)更快地解决这个问题?
克里斯。
答案 0 :(得分:4)
您可以输入Trie。
这将帮助您找到LFS字符串。
您可以将创建算法更改为计数1和0,然后您可以在子串节点上轻松找到这些数字。
同时查看Suffix Tree ..
创造= O(n)
对于搜索,你可能会做类似BFS的事情,也就像O(N)