Questa sfida è legata a Flipping Pancakes .
Potresti aver sentito parlare dell'ordinamento dei pancake , in cui una pila di pancake viene ordinata in base alle dimensioni inserendo la spatola nella pila e capovolgendo tutti i pancake sopra la spatola, fino a quando i pancake vengono ordinati dal più piccolo al più grande sul piatto. Il problema del pancake bruciato è leggermente diverso. Tutti i pancake ora hanno un lato bruciato e il lato bruciato di ogni pancake deve essere rivolto verso il piatto una volta completato lo smistamento.
Ad esempio, dato il seguente stack (dimensione del pancake a sinistra. Che 0
significa lato bruciato in basso e 1
significato lato bruciato in alto a destra):
1 0
3 1
2 1
Puoi capovolgere l'intero stack per ottenere 20 30 11
, capovolgere i primi due per ottenere 31 21 11
e capovolgere di nuovo l'intero stack per ottenere 10 20 30
, una pila ordinata di pancake bruciati. Questa sequenza di mosse, flip 3, flip 2, flip 3, potrebbe essere rappresentata come 3 2 3
.
La sfida
- Data una serie di dimensioni di pancake (non necessariamente univoci) e i loro orientamenti, producono una sequenza di ordinamento di pancake bruciata valida, ovvero una sequenza di capriole che porta alla pila di pancake dal più piccolo al più grande con i lati bruciati verso il basso.
- L'input e l'output possono essere di qualsiasi formato sano con i separatori, ma si prega di specificare quali formati si utilizzano e indicare quale estremità del formato di input è la parte superiore dello stack (TOS).
- È consentito lanciare zero frittelle.
- È consentito mescolare separatori nell'ingresso / uscita.
Casi test
Per tutti i seguenti casi di test, l'input è un elenco e l'output è una stringa separata da spazio e TOS è a sinistra.
[[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"
Come sempre, se qualcosa non è chiaro o errato, per favore fatemi sapere nei commenti. Buona fortuna e buon golf!