Also, ich moechte noch Code fuer die rechte Grenze wissen. Ich habe viel ausprobiert, verschiedene Kombinationen, also ich habe die Bedienung mit if geandert, habe aber nichts erreicht damit.
https://www.mi.fu-berlin.de/wiki/pub/ABI…gWS11/exact.pdf
Seite 1011.
bei p= aca und text= acaaaacatat ist die Linke grenze
2 aaacatat@
3 aacatat@
4 acaaacatat@
5 acatat@
7 at@
...
11 tat@
Wir finden den Lp mit Hilfe dieser Code (1,10)->(1,6)->(1,4)->(3,4) Also Lp=4
Lp ist die Stelle in Array, wo das wort aca der Prefix des Wortes ist.
Jetzt müssen wir den Rp finden - die rechte grenze, wo aca auch der Prefix des Wortes ist. und hier ist es Rp=5. Aber ich verstehe der Code zum Finden vom Rp nicht.Ich verstehe nicht wie sie da den Rp gefunden habe, was muss man da verandern.
Im skipt sieht der Code einbisschen anders, aber es ist egal.
if W <= suffixAt(pos[1]) then
ans = 1
else if W > suffixAt(pos[n]) then
ans = n
else
{
L = 1, R = n
while R-L > 1 do
{
M = (L + R)/2
if W <= suffixAt(pos[M]) then
R = M
else
L = M
}
ans = R
}