Non riesco a credere che non lo abbiamo già .. È una delle strutture dati più importanti nella programmazione, ma ancora abbastanza semplice da implementarlo in un code-golf :
Sfida
Il tuo compito è quello di implementare uno stack che consenta di eseguire il push e il pop-up dei numeri, per testare l'implementazione e semplificare l'I / O, utilizzeremo la seguente configurazione:
- L'input sarà un elenco di numeri interi non negativi
Ogni numero intero positivo indica un e ogni 0 indica un \ texttt {pop ()} - scartando l'elemento superiore.
- L'output sarà lo stack risultante
Esempio
Ad esempio se ci viene dato :
L'output sarà:
Regole
- L'input sarà un elenco di numeri interi non negativi in qualsiasi formato I / O predefinito
- puoi usare un numero intero negativo per indicare la fine di un flusso di numeri interi
- L'output sarà un elenco / matrice / .. dello stack risultante
- la tua scelta in cui sarà l'elemento superiore (all'inizio o alla fine), l'output deve essere coerente
- l'output è flessibile (es. numeri interi separati da nuove righe andrebbero bene), l'unica cosa che conta è l'ordine
- puoi usare un numero intero negativo per indicare il fondo dello stack
- Hai la garanzia che non ci sarà mai uno quando lo stack è vuoto
Esempi
[] -> []
[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]