Fast pattern matching in strings

DE Knuth, JH Morris, Jr, VR Pratt - SIAM journal on computing, 1977 - SIAM
SIAM journal on computing, 1977SIAM
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, ie, the
language {αα^R\}^*, can be recognized in linear time. Other algorithms which run even …
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 , can be recognized in linear time. Other algorithms which run even faster on the average are also considered.
Society for Industrial and Applied Mathematics