Ce défi est lié à Flipping Pancakes .
Vous avez peut-être entendu parler du tri des crêpes , où une pile de crêpes est triée par taille en insérant une spatule dans la pile et en retournant toutes les crêpes au-dessus de la spatule, jusqu'à ce que les crêpes soient triées du plus petit au plus grand dans l'assiette. Le problème des crêpes brûlées est légèrement différent. Toutes les crêpes ont désormais un côté qui est brûlé, et le côté brûlé de chaque crêpe doit faire face à la plaque une fois le tri terminé.
Par exemple, étant donné la pile suivante (taille de la crêpe à gauche. 0
Signifiant côté brûlé vers le bas et 1
signifiant côté brûlé vers le haut à droite):
1 0
3 1
2 1
Vous pouvez retourner la pile entière pour obtenir 20 30 11
, retourner les deux premiers pour obtenir 31 21 11
et retourner la pile entière pour obtenir 10 20 30
, une pile triée de crêpes brûlées. Cette séquence de mouvements, flip 3, flip 2, flip 3, pourrait être représentée par 3 2 3
.
Le défi
- Étant donné un éventail de tailles de crêpes (pas nécessairement uniques) et de leurs orientations, sortez toute séquence de tri de crêpes brûlées valide, c'est-à-dire une séquence de retournements qui conduit à la pile de crêpes triée du plus petit au plus grand avec les côtés brûlés vers le bas.
- L'entrée et la sortie peuvent être n'importe quel format sain avec des séparateurs, mais veuillez spécifier les formats que vous utilisez et indiquer quelle extrémité de votre format d'entrée est le haut de la pile (TOS).
- Le retournement de zéro crêpes est autorisé.
- Le mélange de séparateurs en entrée / sortie est autorisé.
Cas de test
Pour tous les cas de test suivants, l'entrée est une liste et la sortie est une chaîne séparée par des espaces, et TOS est à gauche.
[[1, 0], [3, 1], [2, 1]]
"3 2 3"
[[5, 1], [3, 0], [4, 1], [2, 1], [1, 0]]
"5 3 4 1 3 2 1"
[[5, 1], [3, 0], [3, 0], [1, 1]]
"4 3 2 3"
Comme toujours, si quelque chose n'est pas clair ou incorrect, faites-le moi savoir dans les commentaires. Bonne chance et bon golf!