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.
É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".
Tu dois renvoyer les anagrammes dans le même ordre que celui dans lequel elles apparaissent dans la liste des mots candidats.
Inscris-toi sur Exercism pour apprendre et maîtriser YAMLScript avec 60 exercices, et un vrai mentorat humain, le tout gratuitement.