Forum: Sonstige Fragen zu Delphi
Delphi
by Gausi,
15. Jun 2020
Damit findest du aber ggf. nicht die komplette Überlappung.
Deine Methode würde in diesem Beispiel nur "ei" als Überlappung finden, denn der folgende Schleifendurchlauf mit "rei" und "ein" sorgt für den Abbruch.
Gewünscht wäre aber vermutlich "eins zwei drei".
ich zähle eins zwei drei
eins zwei drei wurde gezählt
Auch wenn das gekünstelt ist und die...
Forum: Sonstige Fragen zu Delphi
Delphi
by Gausi,
15. Jun 2020
Vielleicht, um das klar zu stellen: KMP ist theoretisch interessant, in der Praxis ist das bei "normalen" Texten eher nicht so wichtig. Diesen Programmieraufwand kann man sich in der Regel sparen, da die problematischen Muster praktisch nie auftreten. Relevant wird das ggf., wenn deine Strings DNA-Sequenzen sind (und somit die Anzahl der verschiedenen Buchstaben sehr gering ist), aber sonst eher...
Forum: Sonstige Fragen zu Delphi
Delphi
by Gausi,
15. Jun 2020
Dann würde ich erstmal die Methode von mir (bzw. die von Nersgatt, das ist ja identisch) nehmen. Kann man natürlich in der Hinsicht optimieren, dass das erste "Übereinanderlegen" so anfängt, dass der untere String rechtsbündig mit dem ersten ist. Vorher ergibt die Suche ja keinen Sinn.
Und wenn eine gute (d.h. lineare) Worst-Case-Laufzeit wichtig ist (Probleme machen bei solchen Ansätzen...
Forum: Sonstige Fragen zu Delphi
Delphi
by Gausi,
15. Jun 2020
Auf Anhieb fällt mir nur das naive Vorgehen ein:
Suche das erste Zeichen des zweiten Strings im ersten Strings (also im Beispiel "H")
Überprüfe, ob ab dieser Stelle der Rest des ersten Strings mit dem Anfang des zweiten übereinstimmt
Falls nicht, suche das nächste Vorkommen des ersten Zeichens im zweiten Strings. (*)
Falls ja, hat man die Überlappung gefunden und kann die Strings...