Fonction récursive palindrome en Python
J'ai besoin d'aide pour écrire une fonction récursive qui permet de détecter si une chaîne est un palindrome. Mais je ne peux pas utiliser les boucles, il doit être récursive. Quelqu'un peut-il aider à me montrer comment c'est fait. J'ai besoin d'apprendre ce pour une prochaine mi-parcours. Im en utilisant Python.
Vous devez vous connecter pour publier un commentaire.
Et ici est le meilleur liner
À partir d'un algorithme général point de vue, la fonction récursive a 3 cas:
1) 0 à gauche des éléments. L'élément est un palindrome, par identité.
2) 1 de l'élément de gauche. L'élément est un palindrome, par identité.
3) 2 éléments ou plus. Supprimer la première et dernière question. Comparer. Si elles sont identiques, la fonction d'appel sur ce qui est à gauche de la chaîne. Si la première et la dernière ne sont pas les mêmes, le point n'est pas un palindrome.
La mise en œuvre de la fonction elle-même est laissé comme exercice au lecteur 🙂
Si une chaîne est égale à zéro ou de l'une des lettres de long, c'est un palindrome.
Si une chaîne est la première et la dernière lettres du même, et le reste des lettres (je pense que c'est un
[1: -1]
tranche en Python, mais mon Python est un peu rouillé) sont un palindrome, c'est un palindrome.Maintenant, écrire que comme un palindrome fonction qui prend une chaîne de caractères. Il appellera lui-même.
Voici un autre point de vue
Un palindrome chaîne est
Certains lettre, x.
Certains palindromique substrinng.
La même lettre, x, répété.
Notez également que vous pouvez être donné un bon anglais phrase "Mesure ai-je été ere, j'ai vu l'île d'Elbe." avec la ponctuation. Votre palindrome vérificateur peut-être tranquillement sauter de ponctuation. Aussi, vous pouvez avoir tranquillement match sans tenir compte de cas. C'est un peu plus complexe.
Certains des principaux signes de ponctuation. Certains lettre, x.
Certains palindromique sous-chaîne.
Certains lettre, x, répété sans égard à l'arrêt. Certains de fuite de la ponctuation.
Et, par définition, une chaîne de longueur nulle est un palindrome. Aussi une seule chaîne de caractères (après la suppression de la ponctuation) est un palindrome.
Puisque nous sommes poster du code, de toute façon, et pas de one-liner a été publié pour le moment, va ici:
La fonction doit s'attendre à une chaîne. Si il y a plus d'une lettre dans la chaîne de comparer la première et la dernière lettre. Si 1 ou 0 de lettres, de retourner la valeur true. Si les deux lettres sont égaux appel de la fonction, puis de nouveau à la chaîne, sans la première et la dernière lettre. Si elles ne sont pas égaux return false.
Voici une façon que vous pouvez penser de simples fonctions récursives... retournez le problème et pensez-y de cette façon. Comment voulez-vous faire un palindrome de manière récursive? Voici comment je ferais...
Alors vous pouvez tourner autour pour construire le test.
Ma solution
Ici est la version C, si quelqu'un arrive à la terre ici la recherche de code C!
Appel: