Menu
CoddyTech

Palindrome Partitioning

Un palindrome se lit de la même façon de gauche à droite et de droite à gauche. Découpe la chaîne s en une ou plusieurs parties de sorte que chaque partie soit un palindrome, puis renvoie toutes les façons de le faire.

Écris chaque découpage sous la forme de ses parties dans l’ordre, séparées par | : découper aab en a, a et b donne a|a|b. Renvoie les découpages par ordre croissant, en comparant les codes des caractères, de sorte que | vient après toutes les lettres minuscules.

Fonction

partition(s: string) → string-array
sstring
la chaîne de lettres minuscules à découper
Renvoiestring-array
chaque découpage de s en palindromes, avec | entre les morceaux, par ordre croissant

Contraintes

  • 1 ≤ s.length ≤ 11
  • s ne contient que des lettres minuscules anglaises.
  • Une chaîne de 11 lettres identiques comporte 1,024 découpages, la réponse la plus grande.

Exemples

Entrée
s = "aab"
Sortie
["aa|b", "a|a|b"]
Explication
Seuls aa|b et a|a|b ont uniquement des morceaux palindromiques ; a|ab échoue pour ab. aa|b vient en premier dans l’ordre de tri : au deuxième caractère, il a a alors que l’autre a |, qui vient après toutes les lettres dans l’ordre de tri.
challenge icon

Pour aller plus loin

Peux-tu trouver le nombre minimal de coupures qui divise s en palindromes, pour des chaînes d’une longueur maximale de 2 000 ?

Réinitialiser le code
def partition(s):
    # Écrivez le code ici

Test #1

Test #2

Argument

s = "aab"

Résultat attendu

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