SIAM Journal on Computing · 1977 · 2.9K citations · 14 references
ComputingComputer ScienceMathematicsAlgorithmsComputational LinguisticsNatural Language ProcessingPattern RecognitionSearching AlgorithmsString AlgorithmsComplexity Of String AlgorithmsMatching ProblemsPalindrome AlgorithmsPattern MatchingString SearchString Searching
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. The constant of proportionality is low enough to make this algorithm of practical use, and the procedure can also be extended to deal with some more general pattern-matching problems. A theoretical application of the algorithm shows that the set of concatenations of even palindromes, i.e., the language $\{\alpha \alpha ^R\}^*$, can be recognized in linear time. Other algorithms which run even faster on the average are also considered.
14
Fast Pattern Matching in Strings
Donald E. Knuth, James H. Morris, Vaughan Pratt · SIAM Journal on Computing · 1977 · 2.9K citations
Alfred V. Aho, Margaret J. Corasick · Communications of the ACM · 1975 · 2.9K citations · Full text
Programming Techniques: Regular expression search algorithm
Thompson Ken · Communications of the ACM · 1968 · 839 citations · Full text
On the translation of languages from left to right
Donald E. Knuth · Information and Control · 1965 · 792 citations