single
Défi : Formater un Numéro de Téléphone
Glissez pour afficher le menu
Rappel : une fonction récursive résout un problème en s'appelant elle-même avec une entrée plus simple, jusqu'à atteindre le cas de base qui arrête la récursion :
1234def list_sum(numbers): if not numbers: # Base case return 0 return numbers[0] + list_sum(numbers[1:]) # Recursive case
Remarquez que chaque appel récursif travaille sur une version réduite de l'entrée — dans ce cas, la liste sans son premier élément. La même approche s'applique lors du traitement des chaînes de caractères caractère par caractère.
Glissez pour commencer à coder
Étant donné une chaîne représentant un numéro de téléphone, qui peut contenir des espaces, des tirets, des parenthèses ou d'autres caractères non numériques. L'objectif est d'extraire uniquement les chiffres en utilisant la récursivité.
- Si la chaîne d'entrée
numberest vide, retourner une chaîne vide ; - Vérifier si le premier caractère de la chaîne
numberest un chiffre à l'aide de la méthodeisdigit(); - S'il s'agit d'un chiffre, le concaténer avec le résultat d'un appel récursif en passant la sous-chaîne à partir du deuxième caractère ;
- S'il ne s'agit pas d'un chiffre, effectuer un appel récursif en sautant le premier caractère.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion