后缀数组是字符串算法核心,本文详解 2026 最新版。

后缀数组解决什么问题

  • 字符串匹配
  • 最长公共子串
  • 最长重复子串
  • 不同子串个数

核心概念

  • 后缀:字符串从某位置到末尾的子串
  • sa[i]:排名第 i 的后缀起始位置
  • rk[i]:第 i 个后缀的排名
  • height[i]:相邻后缀的最长公共前缀

构造方法

  • 倍增法 O(n log n)
  • DC3 算法 O(n)
  • SA-IS 算法 O(n)

经典应用

  • 字符串匹配(替代 KMP)
  • 最长公共子串
  • 最长回文子串
  • 不同子串个数

2026 新增考点

  • 后缀自动机(SAM)
  • 后缀平衡树
  • Lyndon 分解

省选一对一辅导:151 6522 2880