A factor C of a string S is called a cover of S, if each position of S is contained in an occurrence of C. Breslauer (1992) [3] proposed a well-known O(n)-time algorithm that computes the shortest cover of every prefix of a string of length n. We show an O(nlogn)-time and O(n)-space algorithm that computes the shortest cover of every cyclic shift of a string of length n and an O(n)-time algorithm that computes the shortest among these covers. We also provide a combinatorial characterization of shortest covers of cyclic shifts of Fibonacci strings that leads to efficient algorithms for computing these covers.We further consider the bound on the number of different lengths of shortest covers of cyclic shifts of the same string of length n. We show that this number is Θ(logn) for Fibonacci strings.
Read full abstract