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 0significa lato bruciato in basso e 1significato 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 11e 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!