An Optimal Algorithm for Computing the Repetitions in a Word

@article{Crochemore1981AnOA,
  title={An Optimal Algorithm for Computing the Repetitions in a Word},
  author={Maxime Crochemore},
  journal={Inf. Process. Lett.},
  year={1981},
  volume={12},
  pages={244-250}
}
  • M. Crochemore
  • Published 13 October 1981
  • Computer Science
  • Inf. Process. Lett.

Fast and Practical Algorithms for Computing All the Runs in a String

A collection of fast space-efficient algorithms for computing all the runs in a string that appear in many circumstances to be superior to those previously proposed.

A Minimal Periods Algorithm with Applications

The algorithm can be used to detect certain types of pseudo-patterns in words, which was the original goal in studying this generalization of Kosaraju's result.

Finding maximal repetitions in a word in linear time

  • R. KolpakovG. Kucherov
  • Mathematics
    40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039)
  • 1999
This work proves a combinatorial result asserting that the sum of exponents of all maximal repetitions of a word of length n is bounded by a linear function in n, which implies that there is only a linear number of maximal repetition in a word.

Optimal Computation of all Repetitions in a Weighted String

A new variant of Crochemore’s partitioning algorithm for weighted strings is presented, which requires optimal time O(n log n), thus improving on the best known O( n2)-time algorithm for computing all repetitions in a weighted string of length n.

Computing all Repeats Using Suffix Arrays

An algorithm that identifies all the repeating substrings (tandem, overlapping, and split) in a given string x = X[1..n] and its output substrings u are nonextendible (NE); that is, any extension of some occurrence of u in x, either to the left or to the right, yields a string (λu or uλ) that is unequal to the same Extension of some other occurrence of U.

A Parallel Approach to Computing Runs in a String

This paper proposes a parallel approach to computing runs based on a parallelization of the extended Crochemore’s algorithm under the shared memory model.

Large-scale detection of repetitions

  • W. F. Smyth
  • Computer Science
    Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences
  • 2014
This paper explores the possibility that repetitions (perhaps also other regularities in strings) can be computed in a manner commensurate with the size of the output.

Spelling Approximate Repeated or Common Motifs Using a Suffix Tree

The approach introduced here for finding all valid models corresponding to either repeated or common motifs starts by building a suffix tree of the sequence(s) and then, after some further preprocessing, uses this tree to simply spell the models.

About the Authors

  • Larry DooleyR. D. Blackburn
  • Computer Science
    Psychological science in the public interest : a journal of the American Psychological Society
  • 2014
Three variants of extending the original Crochemore repetition algorithm to compute runs are presented – two with a worsen complexity of O(n log n), and one with the same complexity as the original algorithm.

Pattern Matching with Variables: Fast Algorithms and New Hardness Results

It is shown that it is NP-complete to decide, for a given number k and a word w, whether w can be factorised into k distinct factors; this shows that the injective version of the matching problem isNP-complete even for very restricted cases.
...

References

SHOWING 1-5 OF 5 REFERENCES

Fast Pattern Matching in Strings

An algorithm is presented which finds all occurrences of one given string within another, in running time proportional to the sum of the lengths of the strings, showing that the set of concatenations of even palindromes, i.e., the language $\{\alpha \alpha ^R\}^*$, can be recognized in linear time.

Repetitive Strings are not Context-Free

It is proved that the set of répétitive strings over an alphabet of three or more letters is not context-free, settling a conjecture from [1].

The Design and Analysis of Computer Algorithms

This text introduces the basic data structures and programming techniques often used in efficient algorithms, and covers use of lists, push-down stacks, queues, trees, and graphs.

Introduction to formal language theory

The theory of formal languages has been developed extensively, and has several discernible trends, which include applications to the syntactic analysis of programming languages, program schemes, models of biological systems, and relationships with natural languages.

Partitioning a Graph in O(|A| log2 |V|)