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.
Ta tâche est, étant donné un mot cible et un ensemble de mots candidats, de trouver le sous-ensemble des candidats qui sont des anagrammes de la cible.
Une anagramme est un mot nouveau formé en réarrangeant les lettres d'un autre mot : par exemple, "owns" est une anagramme de "snow".
Un mot n'est pas sa propre anagramme : par exemple, "stop" n'est pas une anagramme de "stop".
La cible et les candidats sont des mots 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 une anagramme de "sTOp", mais StoP n'est pas une anagramme de sTOp.
L'ensemble des anagrammes est le sous-ensemble de l'ensemble des candidats qui sont des anagrammes de la cible (dans n'importe quel ordre).
Les mots de l'ensemble des anagrammes doivent avoir la même casse que dans l'ensemble des candidats.
Étant donné la cible "stone" et les candidats "stone", "tones", "banana", "tons", "notes", "Seton", l'ensemble des anagrammes est "tones", "notes", "Seton".
Tu dois renvoyer les anagrammes dans le même ordre que celui dans lequel elles figurent dans les mots candidats.
Inscris-toi sur Exercism pour apprendre et maîtriser Nim avec 70 exercices, et un vrai mentorat humain, le tout gratuitement.