Computing Covers Using Prefix Tables
Abstract
An indeterminate string x = x[1..n] on an alphabet is a sequence of nonempty subsets of ; x is said to be regular if every subset is of size one. A proper substring u of regular x is said to be a cover of x iff for every i ∈ 1..n, an occurrence of u in x includes x[i]. The cover array γ = γ[1..n] of x is an integer array such that γ[i] is the longest cover of x[1..i]. Fifteen years ago a complex, though nevertheless linear-time, algorithm was proposed to compute the cover array of regular x based on prior computation of the border array of x. In this paper we first describe a linear-time algorithm to compute the cover array of regular string x based on the prefix table of x. We then extend this result to indeterminate strings.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.