Menu
CoddyTech

Palindrome Partitioning

Ein Palindrom liest sich von links nach rechts und von rechts nach links gleich. Teile die Zeichenfolge s in ein oder mehrere Stücke, sodass jedes Stück ein Palindrom ist, und gib alle Möglichkeiten dafür zurück.

Schreibe jede Aufteilung als ihre Stücke in der richtigen Reihenfolge, getrennt durch |: Wenn aab in a, a und b aufgeteilt wird, ergibt das a|a|b. Gib die Aufteilungen in aufsteigender Reihenfolge zurück, verglichen anhand der Zeichencodes, sodass | nach jedem Kleinbuchstaben kommt.

Funktion

partition(s: string) → string-array
sstring
die Zeichenfolge aus Kleinbuchstaben, die abgeschnitten werden soll
Gibt zurückstring-array
jede Zerlegung von s in Palindrome, mit | zwischen den Teilen, in aufsteigender Reihenfolge

Einschränkungen

  • 1 ≤ s.length ≤ 11
  • s enthält nur englische Kleinbuchstaben.
  • Eine Zeichenfolge aus 11 gleichen Buchstaben hat 1,024 Aufteilungen, die größte Antwort.

Beispiele

Eingabe
s = "aab"
Ausgabe
["aa|b", "a|a|b"]
Erklärung
Nur aa|b und a|a|b bestehen ausschließlich aus palindromischen Teilen; a|ab scheitert an ab. aa|b steht in der Sortierung an erster Stelle: Beim zweiten Zeichen hat es ein a, während das andere ein | hat, das nach jedem Buchstaben sortiert wird.
challenge icon

Weiterführende Frage

Kannst du die kleinste Anzahl an Schnitten finden, die s in Palindrome zerlegt, für Zeichenfolgen mit einer Länge von bis zu 2.000?

Code zurücksetzen
def partition(s):
    # Schreibe hier den Code

Test #1

Test #2

Argument

s = "aab"

Erwartete Ausgabe

["aa|b", "a|a|b"]