c++ - 如何打印后缀树中的字符串

标签 c++ c algorithm suffix-tree

我在打印后缀树中的最长公共(public)子字符串时遇到困难。我可以轻松计算最长公共(public)子字符串的长度,但在实际查找子字符串时遇到问题。下面是 C++ 中最长公共(public)子字符串的代码。可以有人请帮帮我吗?

最佳答案

添加变量:

int start = -1;

替换:

ans=max(ans,l);

与:

if (l > ans) {
  ans = l;
  start = i;
}

最长的子串从b[start]开始,因此要在末尾打印最长的子串:

printf("%.*s", ans, b + start);

关于c++ - 如何打印后缀树中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22352337/

相关文章:

c++ - 是否可以使用 C++17 折叠表达式仅折叠包的一部分?

algorithm - 单元测试近似算法

algorithm - 最小列总和差异是多少?

c++ - 如何在不离开 X.11 环境的情况下开发 DirectFB 应用程序

c++ - 在函数调用中,为什么 nullptr 不匹配指向模板对象的指针?

c - 不允许指向不完整类类型的指针 - 单链表

c# - P从用 C 编译的 DLL 中调用函数

c - 具有链表实现的矩阵

algorithm - Scala 中最快的加权随机算法?

c++ - 为什么我不能使用 protected /私有(private)继承访问派生实例中基类的 protected 成员?