Let y i denote the concatenation of string?y?with itself?i?times. For example,?(ab) 3 =?ababab. We say that a
Question:
Let yi denote the concatenation of string?y?with itself?i?times. For example,?(ab)3 =?ababab. We say that a string?x????* has?repetition factor?r?if?x?=?yr for some string?y????* and some?r > 0. Let??(x)?denote the largest?r?such that?x?has repetition factor?r.
a.?Give an efficient algorithm that takes as input a pattern?P [1. . m]?and computes the value??(Pi)?for?i?=?1, 2, . . . ,m. What is the running time of your algorithm?
b.?For any pattern?P [1. .m], let??*(P)?be defined as max1???I???m ?(Pi). Prove that if the pattern?P?is chosen randomly from the set of all binary strings of length?m, then the expected value of??*(P)?is?O(1).
c.?Argue that the following string-matching algorithm correctly finds all occurrences of pattern?P?in a text?T[1. . n]?in time?O(?(P)n?+?m):
REPETITION-MATCHER?(P, T)
This algorithm is due to Galil and Seiferas. By extending these ideas greatly, they obtained a linear-time string-matching algorithm that uses only O(1) storage beyond what is required for P and T.
Step by Step Answer:
Introduction to Algorithms
ISBN: 978-0262033848
3rd edition
Authors: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest