Manacher's Algorithm ist ein effizienter Algorithmus zur Bestimmung der längsten palindromischen Teilzeichenkette in einem gegebenen String in linearer Zeit, also . Ein Palindrom ist eine Zeichenkette, die vorwärts und rückwärts gleich gelesen wird, wie z.B. "abba" oder "racecar". Der Algorithmus nutzt eine besondere Technik, um die Suche nach Palindromen zu optimieren, indem er das Problem in ein vereinfachtes Format umwandelt, um die Symmetrie der Palindrome effektiv auszunutzen.
Durch die Einführung von Platzhaltern zwischen den Zeichen (z.B. durch Einfügen von #
zwischen jedem Zeichen und am Anfang und Ende) wird das Problem der geraden und ungeraden Längen von Palindromen vereinheitlicht. Der Algorithmus berechnet dann für jedes Zeichen die maximale Länge des Palindroms, das um dieses Zeichen zentriert ist, und nutzt dabei die bereits berechneten Werte, um die Berechnung effizient zu gestalten. Das Ergebnis ist ein Array, das die Längen der längsten Palindrome an jedem Punkt angibt, welches schließlich zur Bestimmung der längsten palindromischen Teilzeichenkette verwendet werden kann.
Starte dein personalisiertes Lernelebnis mit acemate. Melde dich kostenlos an und finde Zusammenfassungen und Altklausuren für deine Universität.