Roberto Grossi , Costas S. Iliopoulos , Jesper Jansson , Zara Lim , Wing-Kin Sung , Wiktor Zuba
{"title":"Finding the cyclic covers of a string","authors":"Roberto Grossi , Costas S. Iliopoulos , Jesper Jansson , Zara Lim , Wing-Kin Sung , Wiktor Zuba","doi":"10.1016/j.ipl.2025.106594","DOIUrl":null,"url":null,"abstract":"<div><div>We introduce the concept of cyclic covers, which generalizes the classical notion of covers in strings. Given any string <em>X</em>, a factor <em>W</em> of <em>X</em> is called a <em>cyclic cover</em> if each position of <em>X</em> belongs to an occurrence of a cyclic shift of <em>W</em> in <em>X</em>. Two cyclic covers are distinct if one is not a cyclic shift of the other. The <em>cyclic covers problem</em> asks for all distinct cyclic covers of an input string <em>X</em>. We present an algorithm that solves the cyclic covers problem in <span><math><mi>O</mi><mo>(</mo><mi>n</mi><mi>log</mi><mo></mo><mi>n</mi><mo>)</mo></math></span> time, where <em>n</em> is the length of <em>X</em>. It is based on finding a well-structured set of standard occurrences of a constant number of factors of a cyclic cover candidate <em>W</em>, computing the regions of <em>X</em> covered by cyclic shifts of <em>W</em>, extending those factors, and taking the union of the results.</div></div>","PeriodicalId":56290,"journal":{"name":"Information Processing Letters","volume":"191 ","pages":"Article 106594"},"PeriodicalIF":0.7000,"publicationDate":"2025-06-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information Processing Letters","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0020019025000389","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
Abstract
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 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.
期刊介绍:
Information Processing Letters invites submission of original research articles that focus on fundamental aspects of information processing and computing. This naturally includes work in the broadly understood field of theoretical computer science; although papers in all areas of scientific inquiry will be given consideration, provided that they describe research contributions credibly motivated by applications to computing and involve rigorous methodology. High quality experimental papers that address topics of sufficiently broad interest may also be considered.
Since its inception in 1971, Information Processing Letters has served as a forum for timely dissemination of short, concise and focused research contributions. Continuing with this tradition, and to expedite the reviewing process, manuscripts are generally limited in length to nine pages when they appear in print.