Aller au contenu

Retournement d'une chaine⚓︎

Écrire une fonction récursive qui renvoie le retournement d'une chaine de caractères.

Indices

Si une chaine texte est non vide :

  • texte[0] correspond au premier caractère,
  • texte[1:] est une copie de la suite.
###

def retourne(texte):bksl-nl ...bksl-nlbksl-nlassert retourne('salut') == 'tulas'bksl-nlbksl-nl

Réponse
🐍 Script Python
def retourne(texte):
    """Renvoie une copie en miroir de `texte`"""
    if len(texte) == 0:
        return texte
    else:
        return retourne(texte[1:]) + texte[0]

assert retourne('salut') == 'tulas'

Les tranches ; mauvaises méthodes

Une copie de tranche avec texte[i:j] est couteux ; il faut recopier chaque caractère.

Nous reprendrons ces exercices avec des fonctions récursives qui prendront deux paramètres i et j comme indices de travail.