Dostajesz drzewo, które w tradycji informatycznej ma korzeń u góry i liście u dołu. Węzły liści są oznaczone liczbami. Twoim celem jest zabranie specjalnego liścia oznaczonego -1
i przesunięcie go w górę, aby był nowym korzeniem.
[3, [[16], -1], [4]] --> [[[[4], 3], [16]]]
Możesz sobie wyobrazić obrócenie specjalnego liścia do góry i pozwolenie, by reszta drzewa zwisała z niego. Utrzymywanie drzewa w płaszczyźnie podczas obracania go, aby uzyskać prawidłową kolejność wszystkich gałęzi od lewej do prawej.
Nowe drzewo ma wszystkie liście oryginalnego drzewa oprócz -1
.
Wejście:
Drzewo, którego liście są wyraźnymi dodatnimi liczbami całkowitymi, z wyjątkiem jednego liścia -1
. Korzeń drzewa będzie miał co najmniej dwie odgałęzienia.
Dane wejściowe są podawane jako zagnieżdżona lista [3, [[16], -1], [[4]]]
lub jej ciąg znaków. Ograniczniki są opcjonalne i zależą od ciebie, ale sąsiednie liczby muszą być oddzielone.
Wynik:
Wyjdź lub wydrukuj przewrócone drzewo w tym samym formacie co dane wejściowe. Kolejność wpisów na liście musi być poprawna. Modyfikacja na miejscu jest w porządku.
Jeśli dane wejściowe / wyjściowe są typem danych, domyślnie musi to być drukowany w wymaganym formacie. Wbudowane, które w zasadzie wykonują zadanie za Ciebie, nie są dozwolone.
Przypadki testowe:
>> [3, [[16], -1], [4]]
[[[[4], 3], [16]]]
>> [2, -1]
[[2]]
>> [44, -1, 12]
[[12, 44]]
>> [[[[-1]]], [[[[4]]]]]
[[[[[[[[[4]]]]]]]]]
>> [[1, 2, 3], [4, -1, 6], [7, 8, 9]]
[[6, [[7, 8, 9], [1, 2, 3]], 4]]
>> [9, [8, [7, [6, -1, 4], 3], 2], 1]
[[4, [3, [2, [1, 9], 8], 7], 6]]
4
Posiada dwa kolejne nawiasy wokół niego niż3
, ale jest tylko 1 warstwa diagramed głębiej.