W ramach algorytmu kompresji standard JPEG rozwija matrycę do wektora wzdłuż przeciwbieżnych zmiennych kierunków:
Twoim zadaniem jest pobranie matrycy (niekoniecznie kwadratowej) i zwrócenie jej w rozwiniętej formie. Jako przykład:
[1 2 3 4
5 6 7 8
9 1 2 3]
powinien ustąpić
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
Zasady
Możesz założyć, że elementy macierzy są dodatnimi liczbami całkowitymi mniejszymi niż 10
.
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
Matryca wejściowa może być podana w dowolnej wygodnej, jednoznacznej, zagnieżdżonej liście lub formacie łańcuchowym, lub jako płaska lista wraz z oboma wymiarami macierzy. (Lub, oczywiście, jako typ matrycy, jeśli Twój język je ma.)
Wektor wyjściowy może mieć dowolny dogodny, jednoznaczny, płaski format lub ciąg znaków.
Obowiązują standardowe zasady gry w golfa .
Przypadki testowe
[[1]] => [1]
[[1 2] [3 1]] => [1 2 3 1]
[[1 2 3 1]] => [1 2 3 1]
[[1 2 3] [5 6 4] [9 7 8] [1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 3 4] [5 6 7 8] [9 1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 6 3 1 2] [5 9 4 7 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 5 9 6 3 4 7 1 2 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
Powiązane wyzwania
- Zrekonstruuj zygzakowatą matrycę (nieco trudniejszą odwrotną transformację)
- Obróć anty-przekątne