Bien que nous ayons 17 questions avec des anagrammes , nous n'avons toujours pas cette question, alors la voici.
Ta tâche
Vous devez écrire un programme ou une fonction qui, lors de la réception d'une chaîne, en imprime toutes les anagrammes possibles. Aux fins de cette question, une anagramme est une chaîne qui contient le même caractère que la chaîne d'origine, mais qui n'est pas une copie exacte de la chaîne d'origine. Une anagramme ne doit pas nécessairement être ou contenir des mots réels.
Contribution
Vous pouvez accepter la chaîne, qui peut être de n'importe quelle longueur> 0, par n'importe quelle méthode d'entrée standard. Il peut contenir n'importe quel caractère ASCII.
Production
Vous pouvez afficher toutes les anagrammes possibles de la chaîne saisie de n'importe quelle manière standard. Vous ne devez pas sortir deux fois la même chaîne ou produire une chaîne égale à l'entrée.
Autres règles
Les échappatoires standard ne sont pas autorisées
Notation
C'est le code-golf , le moins d'octets gagne.
la source
Réponses:
05AB1E , 3 octets
Une fonction qui laisse la pile avec une liste des anagrammes en haut (et comme son seul élément). Un programme complet imprime une représentation de cette liste.
Essayez-le en ligne!
Comment?
la source
Rubis , 45 octets
Essayez-le en ligne!
En dépit d'avoir un intégré, le mot "permutation" est vraiment long :(
la source
|[]
semble inutile?|[]
est plus court que.uniq
.MATL , 7 octets
Essayez-le en ligne!
Explication
la source
pyth ,
84Test en ligne .
la source
Japt , 6 octets
Essayez-le en ligne!
Explication
la source
Haskell,
4840 octetsEssayez-le en ligne!
Enregistré 8 octets grâce à l'
tail
astuce de Leo .la source
tail
place dedelete x
, car la chaîne d'origine sera toujours la première dans la liste des permutations. Cela vous permettra de passer à une solution sans point, puis à une fonction sans nom, beaucoup d'octets à enregistrer!CJam , 8 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 47 octets
la source
StringJoin/@Rest@Permutations@Characters@#&
est de 43 octets.Gelée , 4 octets
Un lien monadique prenant une liste de caractères et renvoyant une liste de listes de caractères - toutes des anagrammes distinctes qui ne sont pas égales à l'entrée.
Essayez-le en ligne! (le pied de page forme un programme qui rejoint la liste par des retours à la ligne et des impressions pour éviter la représentation autrement brisée).
Comment?
la source
Y
si les fonctions étaient autorisées ... Je vois que vous avez inversé ma modification à la question cependant: /Python 3,
857663 octetsEn tant que fonction, et renvoyer des chaînes sous forme de liste de caractères (merci à @ pizzapants184 de m'avoir dit que c'est autorisé):
En tant que fonction:
85 octets en tant que programme complet:
Pourrait être réduit un peu si la sortie de chaînes comme ('a', 'b', 'c') est autorisée (je ne suis pas sûr que ce soit le cas).
la source
Java 8,
245239237 octets-6 octets grâce à @ OlivierGrégoire .
Java verbeux typique .. Je vois beaucoup de réponses <10 octets, et me voici avec plus de 200 octets .. XD
Explication:
Essayez-le ici.
la source
l.forEach(System.out::println);
place de votre boucle d'impression. De plus, je n'aime pasSet
être défini au niveau de la classe sans sa classe englobante, un lambda défini personne ne sait où et une méthode. C'est trop pour moi. Je peux comprendre que les importations soient séparées des autres, mais il n'y a rien d'autonome, cela ressemble plus à une collection d'extraits de code qu'autre chose. Je suis désolé, mais pour la première fois en PCG, je donne -1 :(forEach
. Quant au niveau de la classeSet
, quelle est l'alternative? Afficher toute la classe, y compris la méthode principale? Publier la classe entière à l'exclusion de la méthode principale, mais y compris la classe elle-même, l'interface et le nom de la fonction?public static void main
, dites simplement "la méthode de saisie est ...". Le fait est que votre réponse telle qu'elle est actuellement enfreint toutes les règles "autonomes". Je ne suis pas contre le fait de contraindre les règles, mais contrevenir? Ouais, ça me dérange :(Perl 6 ,
3938 octetsEssayez-le
Essayez-le
Étendu
la source
C ++, 142 octets
non golfé
la source
K (oK), 13 bytes
Solution:
Try it online!
Explanation:
Evaluation is performed right-to-left.
la source
JavaScript (ES6), 101 bytes
Adopted from a past answer of mine.
Show code snippet
la source
Perl 5, 89 + 2 (
-F
) = 91 bytesTry it online!
la source