Finding the cyclic covers of a string
We introduce the concept of cyclic covers, which generalizes the classical notion of covers in strings. Given any string X , a factor W of X is called a cyclic cover if each position of X belongs to an occurrence of a cyclic shift of W in X . Two cyclic covers are distinct if one is not a cyclic shift of the other. The cyclic covers problem asks for all distinct cyclic covers of an input string X . We present an algorithm that solves the cyclic covers problem in O ( n log n ) time, where n is the length of X . It is based on finding a well-structured set of standard occurrences of a constant number of factors of a cyclic cover candidate W , computing the regions of X covered by cyclic shifts of W , extending those factors, and taking the union of the results. • We introduce the cyclic cover problem. • Two cyclic covers are distinct if one is not a cyclic shift of the other. • The cyclic cover problem requires finding all distinct cyclic covers of X . • We show that for a string of length n, the cyclic cover problem can be solved in O ( n log n ) time.
Authors
- Roberto Grossi (ORCID: https://orcid.org/0000-0002-7985-4222)
- Wing‐Kin Sung (ORCID: https://orcid.org/0000-0001-7806-7086)
- Zara Lim (ORCID: https://orcid.org/0000-0001-6528-6060)
- Costas S. Iliopoulos
- Jesper Jansson (ORCID: https://orcid.org/0000-0001-6859-8932)
- Wiktor Zuba (ORCID: https://orcid.org/0000-0002-1988-3507)
Institutions
- University of Pisa (IT)
- Centrum Wiskunde & Informatica (NL)
- Applied Science and Technology Research Institute (CN)
- Chinese University of Hong Kong (HK)
- King's College London (GB)
- Kyoto University (JP)
- Hong Kong Science and Technology Parks Corporation (HK)
- Kyoto College of Graduate Studies for Informatics (JP)
Publication Details
- Journal
- Information Processing Letters
- Published
- 2025-06-16
- DOI
- https://doi.org/10.1016/j.ipl.2025.106594
- Primary Topic
- Algorithms and Data Compression
- Type
- article
- Field-Weighted Citation Impact
- 0.00