【发布时间】:2018-08-16 21:12:20
【问题描述】:
我们需要找到text_1 中没有出现在text_2 中的最短子串。如何在O(|text_1|+|text_2|)时间使用后缀和LCP数组解决这个问题?
UPD:
我知道如何使用后缀树来解决它。问题是如何单独使用Suffix array 和LCP array 解决问题(没有其他辅助数据结构)。
首先我们需要建立字符串text_1$text_2#的广义后缀数组和lcp数组。然后我们必须对 LCP 数组进行线性扫描,找到 text_1 唯一的最短子串的起始位置和长度。
问题是在 LCP 阵列的线性扫描期间我们需要做什么,以确定唯一替代的起始位置(使用后缀阵列)和长度(使用 LCP 阵列)。
【问题讨论】:
标签: string algorithm discrete-mathematics