后缀结构构建器Skill suffix-structure-builder

后缀结构构建器是一个专注于字符串处理的技能,用于高效构建和查询后缀数组、后缀树、LCP数组和后缀自动机等数据结构。它支持多种构建算法(如SA-IS、DC3、Ukkonen算法)和查询实现,适用于模式匹配、子串计数、字符串分析等场景。关键词:后缀数组,后缀树,LCP数组,后缀自动机,字符串处理,模式匹配,算法实现,数据结构构建。

后端开发 0 次安装 0 次浏览 更新于 2/23/2026

名称:后缀结构构建器 描述:构建和查询后缀数组及相关结构 允许使用的工具:

  • 读取
  • 写入
  • 搜索
  • 全局匹配
  • 编辑

后缀结构构建器技能

目的

使用高效的构建算法和常见查询实现来构建后缀数组、后缀树及相关结构。

能力

  • 后缀数组构建(SA-IS,DC3)
  • LCP数组构建
  • 后缀树构建
  • 后缀自动机构建
  • 每种结构的查询实现
  • 用于LCP查询的稀疏表

目标流程

  • 字典树-后缀结构
  • 模式匹配算法
  • 字符串处理

后缀结构

后缀数组

  • O(n log n) 或 O(n) 构建
  • 结合LCP实现强大查询
  • O(m log n) 模式匹配

LCP数组

  • Kasai算法 O(n)
  • 用于LCA的区间最小值查询
  • 不同子串计数

后缀树

  • Ukkonen算法 O(n)
  • 更复杂但功能强大
  • 直接模式匹配 O(m)

后缀自动机

  • O(n) 构建
  • 所有子串的最小自动机
  • 适用于计数问题

输入模式

{
  "type": "object",
  "properties": {
    "structure": {
      "type": "string",
      "enum": ["suffixArray", "lcpArray", "suffixTree", "suffixAutomaton"]
    },
    "algorithm": { "type": "string" },
    "queries": { "type": "array" },
    "language": {
      "type": "string",
      "enum": ["cpp", "python", "java"]
    }
  },
  "required": ["structure"]
}

输出模式

{
  "type": "object",
  "properties": {
    "success": { "type": "boolean" },
    "code": { "type": "string" },
    "complexity": { "type": "object" },
    "queryImplementations": { "type": "array" }
  },
  "required": ["success", "code"]
}