Book errata - index
Book: Jewels of Stringology, First Edition, first printing (hardback)
Official book website (no errata page at present)
Status: I emailed Maxime Crochemore with a copy of this errata list (in pieces) between 2003-05-15 and 2003-05-23, and he acknowledged those emails on 2003-05-15 and 2003-05-16, confirming that some of these are errors. He also contributed some of the errata for pp27-28 (I'd spotted that the text didn't match figure 2.6, but I thought that it was an error in the figure rather than an error in the text).
A couple of spelling mistakes in section 1.4:
"Processus" should be "Processes" (second paragraph)
"The result is know" should be "The result is known" (fourth paragraph)
It says that the de Bruijn words for k=2 are "aabba" and "abaab". However, "abaab" doesn't work, because it doesn't include the 2-letter word "bb". "abbaa" would work as an alternative.
inv2 should be:
pat[j+1..m] = text[i+j+1..i+m] and pat[j] ≠ text[i+j]
pat should only refer to
j, not to
i, especially since it is possible to have i>m.
cond1(j,s) - "s>k" should be "s>=k", otherwise when s=k, you try to evaluate pat[k-k], which is pat, which doesn't exist when all the indexes are 1-based.
Four lines from the bottom of the page, "a position j < m" should simply say "a position j".
The special case for Weak_BM_Shift should refer to 0 rather than m. So, the line should say:
Weak_BM_Shift = BM_Shift = m - Bord[m] = period(pat)
So, only cond2 is relevant when we evaluate Weak_BM_Shift[m].
This isn't an error, but in the first paragraph of section 4.2, it might be worth adding some extra text to say that p (without a superscript) is equivalent to p^n (just to make it explicit). Alternately, you could replace "Trie(p)" with "Trie(p^n)" in this paragraph, and in theorem 4.1 (on page 51).
In the first line, "j-1" should be "j+1" (as a subscript of v).
This page was last updated on 2003-12-31 by John C. Kirk