Écrivez une fonction qui prend un ensemble d'entiers et imprime chaque permutation de l'ensemble, et l'échange effectué entre chaque étape
Contribution
un ensemble d'entiers, par exemple (0, 1, 2)
Production
la liste des permutations et swaps au format (set) (swap) (set) ...
Cas de test
Input:
(3, 1, 5)
Output:
(3, 1, 5)
(3, 1)
(1, 3, 5)
(3, 5)
(1, 5, 3)
(1, 3)
(3, 5, 1)
(3, 5)
(5, 3, 1)
(3, 1)
(5, 1, 3)
Règles
- Vous pouvez formater l'ensemble de nombres comme vous le souhaitez.
- Vous pouvez effectuer les swaps dans n'importe quel ordre
- Vous pouvez répéter les permutations et les échanges afin d'en obtenir un nouveau
- Votre code n'a pas besoin d'effectuer les échanges, la sortie doit simplement montrer quel échange a été effectué entre votre dernière sortie et votre sortie actuelle
- Votre code ne doit fonctionner que pour les ensembles de 2 éléments ou plus
- L'ensemble qui vous est fourni n'aura aucun élément répétitif (par exemple (0, 1, 1, 2) n'est pas valide)
C'est le code-golf, donc le code le plus court gagne!
(3, 1, 4)
ou autre - le lire la première fois, j'étais très confus parce que le premier échange a 0,1
permuté les éléments 0,1
mais aussi les indices 0,1
, mais ensuite le suivant l'échange n'a pas suivi ce schéma. Je vous indiquerai également le bac à sable où vous pouvez publier des défis et obtenir des commentaires avant de les publier sur le site principal.