Section 2.2:
The string recovery algorithm presented is 0-based, not
1-based, so to be 1-based (which is consistent with the rest of the
paper) it should read
i:=find(B,1,$)
while i>1 do
print x, where C_x <= i < C_x
i :=find(B,i+1-C_x,x)
end while
It is likely that there are other 0-based, 1-based issues in the work
that weren't caught.
At the end of the section, the algorithm given for pattern lookup should
have the for loop as
for j := |P|-1,...,0 do
reversing the pattern being looked up.
Section 3.2:
The last statement of the position recovery algorithm should read
i := n+1
j := n
while j > 0 do
if 1<= i <= n+1 and bit[i] then
report(i,j)
end if
j := j - 1
i := C_{B[i]} + occ(B,i,B[i])
end while