Fast Algorithm for Partial Covers in Words

  • Tomasz Kociumaka
  • Solon P. Pissis
  • Jakub Radoszewski
  • Wojciech Rytter
  • Tomasz Waleń
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7922)


A factor u of a word w is a cover of w if every position in w lies within some occurrence of u in w. A word w covered by u thus generalizes the idea of a repetition, that is, a word composed of exact concatenations of u. In this article we introduce a new notion of partial cover, which can be viewed as a relaxed variant of cover, that is, a factor covering at least a given number of positions in w. Our main result is an O(nlogn)-time algorithm for computing the shortest partial covers of a word of length n.


Fast Algorithm Partial Cover Cover Index Union Operation Extra Node 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apostolico, A., Ehrenfeucht, A.: Efficient detection of quasiperiodicities in strings. Theor. Comput. Sci. 119(2), 247–265 (1993)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Apostolico, A., Farach, M., Iliopoulos, C.S.: Optimal superprimitivity testing for strings. Inf. Process. Lett. 39(1), 17–20 (1991)MathSciNetzbMATHCrossRefGoogle Scholar
  3. 3.
    Moore, D., Smyth, W.F.: An optimal algorithm to compute all the covers of a string. Inf. Process. Lett. 50(5), 239–246 (1994)MathSciNetzbMATHCrossRefGoogle Scholar
  4. 4.
    Breslauer, D.: An on-line string superprimitivity test. Inf. Process. Lett. 44(6), 345–347 (1992)MathSciNetzbMATHCrossRefGoogle Scholar
  5. 5.
    Li, Y., Smyth, W.F.: Computing the cover array in linear time. Algorithmica 32(1), 95–106 (2002)MathSciNetzbMATHCrossRefGoogle Scholar
  6. 6.
    Crochemore, M., Hancart, C., Lecroq, T.: Algorithms on Strings. Cambridge University Press (2007)Google Scholar
  7. 7.
    Flouri, T., Iliopoulos, C.S., Kociumaka, T., Pissis, S.P., Puglisi, S.J., Smyth, W.F., Tyczyński, W.: New and efficient approaches to the quasiperiodic characterisation of a string. In: Holub, J., Žďárek, J. (eds.) PSC, pp. 75–88. Czech Technical University in Prague, Czech Republic (2012)Google Scholar
  8. 8.
    Sim, J.S., Park, K., Kim, S., Lee, J.: Finding approximate covers of strings. Journal of Korea Information Science Society 29(1), 16–21 (2002)Google Scholar
  9. 9.
    Crochemore, M., Rytter, W.: Jewels of Stringology. World Scientific (2003)Google Scholar
  10. 10.
    Farach, M.: Optimal suffix tree construction with large alphabets. In: FOCS, pp. 137–143 (1997)Google Scholar
  11. 11.
    Ukkonen, E.: On-line construction of suffix trees. Algorithmica 14(3), 249–260 (1995)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
    Apostolico, A., Preparata, F.P.: Data structures and algorithms for the string statistics problem. Algorithmica 15(5), 481–494 (1996)MathSciNetzbMATHCrossRefGoogle Scholar
  13. 13.
    Brodal, G.S., Lyngsø, R.B., Östlin, A., Pedersen, C.N.S.: Solving the string statistics problem in time \(\mathcal{O}(n\log n)\). In: Widmayer, P., Triguero, F., Morales, R., Hennessy, M., Eidenbenz, S., Conejo, R. (eds.) ICALP 2002. LNCS, vol. 2380, pp. 728–739. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  14. 14.
    Fraenkel, A.S., Simpson, J.: How many squares can a string contain? J. Comb. Theory, Ser. A 82(1), 112–120 (1998)MathSciNetzbMATHCrossRefGoogle Scholar
  15. 15.
    Brodal, G.S., Pedersen, C.N.S.: Finding maximal quasiperiodicities in strings. In: Giancarlo, R., Sankoff, D. (eds.) CPM 2000. LNCS, vol. 1848, pp. 397–411. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    Brown, M.R., Tarjan, R.E.: A fast merging algorithm. J. ACM 26(2), 211–226 (1979)MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Gusfield, D., Stoye, J.: Linear time algorithms for finding and representing all the tandem repeats in a string. J. Comput. Syst. Sci. 69(4), 525–546 (2004)MathSciNetzbMATHCrossRefGoogle Scholar
  18. 18.
    Crochemore, M., Iliopoulos, C.S., Kubica, M., Radoszewski, J., Rytter, W., Waleń, T.: Extracting powers and periods in a string from its runs structure. In: Chavez, E., Lonardi, S. (eds.) SPIRE 2010. LNCS, vol. 6393, pp. 258–269. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  19. 19.
    Kociumaka, T., Kubica, M., Radoszewski, J., Rytter, W., Waleń, T.: A linear time algorithm for seeds computation. In: Rabani, Y. (ed.) SODA, pp. 1095–1112. SIAM (2012)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Tomasz Kociumaka
    • 1
  • Solon P. Pissis
    • 4
    • 5
  • Jakub Radoszewski
    • 1
  • Wojciech Rytter
    • 1
    • 2
  • Tomasz Waleń
    • 3
    • 1
  1. 1.Faculty of Mathematics, Informatics and MechanicsUniversity of WarsawWarsawPoland
  2. 2.Faculty of Mathematics and Computer ScienceCopernicus UniversityToruńPoland
  3. 3.Laboratory of Bioinformatics and Protein EngineeringInternational Institute of Molecular and Cell Biology in WarsawPoland
  4. 4.Laboratory of Molecular Systematics and Evolutionary Genetics, Florida Museum of Natural HistoryUniversity of FloridaUSA
  5. 5.Scientific Computing Group (Exelixis Lab & HPC Infrastructure)Heidelberg Institute for Theoretical Studies (HITS gGmbH)Germany

Personalised recommendations