【发布时间】:2013-12-26 17:33:01
【问题描述】:
给定一个字符串,我知道如何使用 Manacher 算法在线性时间内找到 回文子串的数量。但现在我需要找到 distinct/unique 回文子串的数量。现在,这可能会导致 O(n + n^2) 算法 - 一个 'n' 用于查找所有此类子字符串,而 n^2 用于将这些子字符串中的每一个与已找到的子字符串进行比较,以检查它是否是唯一的。
我确信有一种更复杂的算法。我在想也许用后缀树试试运气?有没有时间复杂度更好的算法?
【问题讨论】:
-
不将每个元素与其他元素进行比较会导致 n² 吗?所以我认为它是 O(n + n²) = O(n²)。尽管如此,我同意这仍然很糟糕。
-
@CompuChip 是的,我的错。已编辑。
标签: string algorithm substring time-complexity palindrome