Parcours
/
PHP
PHP
/
Exercices
/
Anagramme
Anagramme

Anagramme

Facile

Introduction

Dans un vide-grenier, tu déniches une ravissante machine à écrire d'époque pour une bouchée de pain ! Tout excité, tu te précipites chez toi, tu glisses une feuille de papier et tu te mets à taper. Pourtant, ton enthousiasme retombe quand tu examines le résultat : tous les mots sont méconnaissables ! Par exemple, elle imprime « stop » au lieu de « post » et « least » au lieu de « stale ». Tu réessaies soigneusement, mais cette fois elle imprime « spot » et « slate ». Après quelques essais, tu découvres qu'il y a un délai aléatoire avant que chaque lettre ne soit imprimée, ce qui chamboule l'ordre. Tu comprends maintenant pourquoi on te l'a vendue pour si peu !

Tu réalises que cette bizarrerie te permet de générer des anagrammes, qui sont des mots formés en réorganisant les lettres d'un autre mot. Ravi de ta découverte, tu passes le reste de la journée à générer des centaines d'anagrammes.

Instructions

Étant donné un mot cible et un ou plusieurs mots candidats, ta tâche consiste à trouver les candidats qui sont des anagrammes de la cible.

Un anagramme est un réarrangement de lettres qui forme un nouveau mot : par exemple, "owns" est un anagramme de "snow". Un mot n'est pas son propre anagramme : par exemple, "stop" n'est pas un anagramme de "stop".

Le mot cible et les mots candidats sont composés d'un ou plusieurs caractères alphabétiques ASCII (A-Z et a-z). Les caractères minuscules et majuscules sont équivalents : par exemple, "PoTS" est un anagramme de "sTOp", mais "StoP" n'est pas un anagramme de "sTOp". Les mots que tu dois trouver doivent être extraits des mots candidats, en conservant la même casse.

Étant donné le mot cible "stone" et les mots candidats "stone", "tones", "banana", "tons", "notes" et "Seton", les anagrammes que tu dois trouver sont "tones", "notes" et "Seton".

Implémentation

Les tests ignorés vers la fin du fichier anagram_test.php sont des objectifs bonus, ils sont facultatifs. Ils nécessitent l'utilisation des fonctions mb_string, qui ne sont pas installées par défaut avec toutes les versions de PHP.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
PHP Exercism

Prêt à commencer Anagramme ?

Inscris-toi sur Exercism pour apprendre et maîtriser PHP avec 11 concepts121 exercices, et un vrai mentorat humain, le tout gratuitement.