To wyzwanie jest związane z Flipping Pancakes .
Być może słyszałeś o sortowaniu naleśników , w którym stos naleśników jest sortowany według rozmiaru, wkładając szpachelkę do stosu i przewracając wszystkie naleśniki nad szpachelką, aż naleśniki zostaną posortowane od najmniejszego do największego na talerzu. Problem przypalonego naleśnika jest nieco inny. Wszystkie naleśniki mają teraz jedną stronę, która jest spalona, a strona przypalona każdego naleśnika musi być zwrócona w stronę talerza po zakończeniu sortowania.
Na przykład, biorąc pod uwagę następujący stos (rozmiar naleśnika po lewej stronie. 0Oznacza spaloną stronę w dół i 1oznaczenie spalonej strony w górę):
1 0
3 1
2 1
Możesz przewrócić cały stos, aby uzyskać 20 30 11, przewrócić dwa górne, aby uzyskać, 31 21 11i przerzucić cały stos ponownie, aby uzyskać 10 20 30, posortowany stos przypalonych naleśników. Tę sekwencję ruchów, trzepnięcie 3, trzepnięcie 2, trzepnięcie 3, można przedstawić jako 3 2 3.
Wyzwanie
- Biorąc pod uwagę tablicę rozmiarów naleśników (niekoniecznie unikatowych) i ich orientację, generuj każdą prawidłową sekwencję sortowania spalonego naleśnika, to znaczy sekwencję przewracania, która prowadzi do sortowania stosu naleśników od najmniejszej do największej ze spalonymi bokami w dół.
- Dane wejściowe i wyjściowe mogą być dowolnym rozsądnym formatem z separatorami, ale określ, jakich formatów używasz, i określ, który koniec formatu wejściowego to górna część stosu (TOS).
- Przerzucanie zerowych naleśników jest dozwolone.
- Dozwolone jest mieszanie separatorów na wejściu / wyjściu.
Przypadki testowe
Dla wszystkich poniższych przypadków testowych wejście to lista, a wyjście to ciąg rozdzielony spacjami, a TOS jest po lewej stronie.
[[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"
Jak zawsze, jeśli coś jest niejasne lub niepoprawne, daj mi znać w komentarzach. Powodzenia i dobrej gry w golfa!