Je ne peux pas croire que nous ne l'ayons pas déjà. C'est l'une des structures de données les plus importantes en programmation, et pourtant assez simple pour l'implémenter dans un code-golf :
Défi
Votre tâche consiste à implémenter une pile permettant de pousser et d'afficher des nombres, de tester votre implémentation et de maintenir les E / S simples. Nous utiliserons la configuration suivante:
- L'entrée sera une liste d'entiers non négatifs
Chaque nombre entier positif indique un \ texttt {push (} n \ texttt {)} et chaque 0 indique un \ texttt {pop ()} - rejet de l'élément supérieur.push ( n ) 0 pop ()
- La sortie sera la pile résultante
Exemple
Par exemple, si on nous donne :
La sortie sera:
Règles
- L'entrée sera une liste d'entiers non négatifs dans n'importe quel format d'E / S par défaut
- vous pouvez utiliser un entier négatif pour indiquer la fin d'un flux d'entiers
- Le résultat sera une liste / matrice / .. de la pile résultante
- votre choix où l'élément du haut sera (au début ou à la fin), la sortie doit juste être cohérente
- la sortie est flexible (par exemple, des entiers séparés par des lignes-nouvelles iraient bien), la seule chose qui compte est l’ordre
- vous pouvez utiliser un entier négatif pour indiquer le bas de la pile
- Vous êtes assuré qu'il n'y aura jamais de lorsque la pile est vide
Exemples
[] -> []
[1] -> [1]
[1,0,2] -> [2]
[4,0,1,12] -> [12,1]
[8,3,1,2,3] -> [3,2,1,3,8]
[1,3,7,0,0,0] -> []
[13,0,13,10,1,0,1005,5,0,0,0] -> [13]
[12,3,0,101,11,1,0,0,14,0,28] -> [28,101,12]