Wprowadzenie
Tablice mogą być również postrzegane jako pole dla odbijającej się piłki. To oczywiście brzmi bardzo niejasno, więc oto przykład danych wejściowych:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Wyzwanie polega na wygenerowaniu odbijanych tablic . Są one wykonane z ukośnych wzorów, które odbijają się od krawędzi pola. Ta ścieżka jest skierowana w górę . Ścieżka dla pierwszej odbitej tablicy (w której ścieżka jest bezpośrednio odbijana od egde), jest następująca:
[1, -, -, -, 5, -, -, -, 9]
[-, 8, -, 6, -, 4, -, 2, -]
[-, -, 3, -, -, -, 7, -, -]
Od lewej do prawej spowoduje to [1, 8, 3, 6, 5, 4, 7, 2, 9]
. To nasza pierwsza odrzucona tablica. Ścieżka dla drugiej odbitej tablicy:
[-, 2, -, -, -, 6, -, -, -]
[9, -, 7, -, 5, -, 3, -, 1]
[-, -, -, 4, -, -, -, 8, -]
To powoduje [9, 2, 7, 4, 5, 6, 3, 8, 1]
. Ścieżka dla trzeciej odbitej tablicy to:
[-, -, 3, -, -, -, 7, -, -]
[-, 8, -, 6, -, 4, -, 2, -]
[1, -, -, -, 5, -, -, -, 9]
To powoduje [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Tak więc trzy odbite tablice to:
[1, 8, 3, 6, 5, 4, 7, 2, 9]
[9, 2, 7, 4, 5, 6, 3, 8, 1]
[1, 8, 3, 6, 5, 4, 7, 2, 9]
Zadanie
Biorąc pod uwagę co najmniej 1 tablicę zawierającą tylko nieujemne liczby całkowite, wszystkie tablice mają tę samą długość, wypisują wszystkie tablice odbite.
Przypadki testowe
Przypadek testowy 1:
Input: Output:
[1, 2, 3, 4, 5] [1, 7, 3, 9, 5]
[6, 7, 8, 9, 0] [6, 2, 8, 4, 0]
Input: Output:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
Input: Output:
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
[9, 9, 9, 9, 9, 9, 9, 100] [9, 0, 9, 0, 9, 0, 9, 0]
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
Input: Output:
[0, 1, 2, 3, 4, 5] [0, 7, 14, 9, 4, 11]
[6, 7, 8, 9, 10, 11] [6, 1, 8, 15, 10, 5]
[12, 13, 14, 15, 16, 17] [12, 7, 2, 9, 16, 11]
Input: Output:
[0, 0, 0, 0, 0, 0] [0, 2, 2, 6, 2, 6]
[1, 2, 3, 4, 5, 6] [1, 0, 3, 2, 5, 2]
[2, 2, 2, 2, 2, 2] [2, 2, 0, 4, 2, 4]
[9, 8, 7, 6, 5, 4] [9, 2, 3, 0, 5, 2]
To jest golf golfowy , więc wygrywanie z najmniejszą ilością bajtów wygrywa!
Odpowiedzi:
Pyth, 17 bajtów
Wyjaśnienie:
Wypróbuj tutaj .
źródło
JavaScript (ES6), 70
TEST
źródło
CJam,
3130 bajtówDane wejściowe i wyjściowe jako lista tablic w stylu CJam.
Sprawdź to tutaj.
Zdecydowanie golfa ...
źródło
Galaretka,
292524 bajtówDzięki za @ Sp3000 za pomoc w golfa poza 5 bajtami!
Wypróbuj online!
źródło
Ruby (2.2.2p95), 124 bajty
To może być prawdopodobnie znacznie lepsze. Dowiem się, jak później!
źródło
Japt,
55494139 bajtówWow, to było zarówno podstępne, jak i szalenie zabawne.
Przetestuj online!
Dane wyjściowe w odwrotnej kolejności do przykładów. To nieznacznie się zepsuje na wejściach powyżej 100 tablic; mam nadzieję, że nie robi to zbyt dużej różnicy.
Wersja niekonkurencyjna, 36 bajtów
Zaimplementowałem te dwie funkcje liczbowe przed wyzwaniem:
ò
- to samo coo
, ale zwraca[X..Y]
zamiast[X..Y)
ó
- to samo coo
, ale zwraca[X..X+Y)
zamiast[X..Y)
Ale z powodu niewłaściwego położenia
0
były one wadliwe i zawsze zwracały puste tablice. To już zostało naprawione.Przetestuj online!
źródło
Python 2,
107106108105104 bajtów(Upuściłem dodatkowe pareny) (Zła lokalizacja początkowa (ب_ب)) (już miał listę o tej długości)
Legalne jest wprowadzanie danych wejściowych jako argumentu funkcji, prawda? Po raz pierwszy przesyłam odpowiedź na kod golfowy.
źródło
APL, 33 znaki
Załóżmy ⎕IO ← 0. Chodzi o to, że ruch odbijający można uzyskać przez proste przesunięcie w górę matrycy, jeśli pierwotna matryca jest powiększona wzdłuż pierwszego wymiaru, a matryca jest odwrócona z wygolonym pierwszym i ostatnim rzędem. Graficznie:
z
W APL
reverse
iupward rotate
są tym samym symbolem:⊖
.źródło
⊃
zamiast0⌷
.Clojure, 125 bajtów
Wow, to nagromadzone postacie dość szybko.
Próbuję zapisać bajty,
let
definiując często używane wartości.źródło
Galaretka *, 15 bajtów
Wypróbuj online!
* Nowsza wersja
źródło