Twoim zadaniem jest napisanie programu, który poda tablicę i liczbę, musisz podzielić tablicę na kawałki o rozmiarze liczba.
Zasady
Twój program otrzyma tablicę A
, a także dodatnią liczbę całkowitą n
. Tablica powinna być następnie podzielona na kawałki długości n
, jeśli długość łańcucha nie jest podzielna przez n
resztki na końcu, powinna być uważana za własną część.
Jeśli
n
jest większa niż długość tablicyA
, musisz zwrócić tablicęA
, na przykład: ifn = 4
iarray A = [1,2,3]
powinieneś zwrócić[1,2,3]
Tablica może zawierać dowolny typ, a nie liczbę.
Nie należy zmieniać kolejności (ani kierunku) żadnego elementu od lewej do prawej. Na przykład
if n = 2
iA= [1,2,3]
. Każdy wynik zamiast[[1,2],[3]]
będzie nieprawidłowy.
Przypadki testowe
n A Output
2 [1,2,3,4,5,6] [[1,2],[3,4],[5,6]]
3 [1,2,3,4,5,6] [[1,2,3],[4,5,6]]
4 [1,2,3,4,5,6] [[1,2,3,4],[5,6]]
To jest golf golfowy , więc wygrasz najkrótsze bajty każdego języka.
źródło
n
jest większa niż długośćA
, musimyA
zwrócić‽ Czy na pewno nie masz na myśli[A]
?n
powinien powrócić[A]
, np[[1,2,3]]
. Co jeślin
jest dokładnie takiej długościA
?A
zamiast[A]
, co wyklucza bardzo dużo języków.Odpowiedzi:
05AB1E , 1 bajt
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Builtins ftw. :)
źródło
JavaScript (ES6), 36 bajtów
Pobiera dane wejściowe jako
(n)(array)
.Wypróbuj online!
Skomentował
źródło
APL (Dyalog Unicode) , 12 bajtów SBCS
Ogromne podziękowania dla Adáma za po prostu granie w golfa (i za całą wiedzę APL, którą mam obecnie> _>).
Wyjaśnienie
Wykonanie
Argumenty
2
,1 2 3 4 5 6 7
. Zauważ, że tablice APL są w formiea b c
, z opcjonalnymi otaczającymi nawiasami.Wypróbuj online!
źródło
Python 3 , 61 bajtów
Wypróbuj online!
Zmienia istniejące rozwiązanie Henry T Python 3, aby uzyskać prawidłowe dane wyjściowe dla n> = len (A).
Publikowanie jako własna odpowiedź z powodu braku uprawnień do komentowania.
źródło
Prolog (SWI) ,
908461 bajtówKod:
Format wejściowy może być nieco dziwny, ale jest to:
Na przykład dla danych wejściowych:
Musisz użyć
[1, 2, 3, 4, 5, 6] * 2 * Result.
.Wypróbuj online!
Wersja bez golfa:
Wypróbuj online! .
źródło
PHP, 15 bajtów
wymaga PHP 7. Zadzwoń z
$f(ARRAY, N)
.źródło
Perl 6 , 13 bajtów
Wypróbuj online!
Funkcja curry owijająca
batch
wbudowane.źródło
;
kod po „Cokolwiek”?;
podczas przekazywania argumentów za pomocą$^a
lub@_
.Czysty , 54 bajty
Wypróbuj online!
źródło
Python 2 , 39 bajtów
Wypróbuj online!
Zakłada, że 1 porcja na linię jest akceptowalnym wyjściem.
źródło
Brainfuck, 71 bajtów
Nie wiem, czy to się liczy, czy nie ... format wejściowy:
Pobiera dane wejściowe i umieszcza spację za każdym razem, gdy
n
znaki przechodząObjaśnienie (bez przecinków, ponieważ spowodowałoby to uszkodzenie programu):
źródło
,
więcej) jest używana częściej, można umieścić komórkę, do której dostęp jest łatwiejszy niż gdyby została umieszczona w innych komórkach) lub użyj bruteforcer. Nie mam umiejętności gry w golfa w BF, więc te sugestie mogą nie być pomocne.n n n A space
konfigurację komórki, jeśli możesz wymyślić lepszy sposób ...A space n n n ...
działać (lubspace A n n n...
)?Python 3, 46 znaków
-1 dzięki @Collin Phillips.
Wypróbuj online!
źródło
CJam , 3 bajty
Jest to anonimowy blok, który pobiera tablicę liczb i liczb ze stosu i zastępuje je tablicą tablic.
Wypróbuj online!
źródło
Brachylog , 2 bajty
Wypróbuj online!
źródło
Eliksir , 16 bajtów
Wypróbuj online!
źródło
Węgiel , 1 bajt
Wypróbuj online! Domyślne wejścia / wyjścia Charcoal utrudniają zademonstrowanie użycia czegokolwiek poza łańcuchami. Jeśli chcesz mieć pełny program, który pobiera listy numeryczne i wyświetla listy sformatowane, można to zrobić w następujący sposób:
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
źródło
C # (interaktywny kompilator Visual C #) ,
787743 bajtówWypróbuj online!
Myślę, że powinniśmy móc po prostu pisać,
int i;
ponieważ 0 jest domyślną wartością int. I niech to, aby uniknąć błędu:error CS0165: Use of unassigned local variable 'i'
.źródło
F # (.NET Core) , 15 bajtów
Wypróbuj online!
Cóż F # ma wbudowane ...
źródło
J , 4 bajty
Wypróbuj online!
Przyjmuje tablicę jako lewy argument, a wielkość porcji jako prawy argument.
Używa dyadic hook i przysłówka infix z argumentem ujemnym, który robi to, co chcemy z definicji.
Uwaga: Typ zwrotu musi być zapakowany, ponieważ J zezwala tylko na tabele przedmiotów o równej wielkości.
źródło
Japt , 2 bajty
Wypróbuj online!
źródło
PHP , 45 bajtów
Wypróbuj online!
źródło
array_chunk
byłaby to prawidłowa odpowiedź?Java 10,
10680 bajtówDrukuje fragmenty bez ogranicznika.
Wypróbuj online.
106 bajtów:
Faktycznie zwraca listę list.
Wypróbuj online.
Wyjaśnienie:
źródło
K (oK) , 10 bajtów
Wypróbuj online!
źródło
Rubin , 25 bajtów
Wypróbuj online!
Jeśli zamiast tablic możemy zwrócić moduły wyliczające, staje się to po prostu:
Ruby , 21 bajtów
Wypróbuj online!
źródło
PicoLisp ,
7574 bajtówWypróbuj online!
źródło
Kokos , 8 bajtów
Wypróbuj online!
źródło
V , 6 bajtów
Wypróbuj online!
Hexdump:
Wyjaśnienie:
źródło
Clojure, 14 bajtów
chyba wbudowane
źródło
Haskell , 26 bajtów
Oto bardziej interesująca wersja z kilkoma dodatkowymi bajtami (dzięki nim za pięć bajtów w każdym rozwiązaniu):
Haskell , 31 bajtów
Wypróbuj online!
źródło
n!x=take n x:n!drop n x
.Data.Lists
zapewnia równieżchunksOf
.PowerShell ,
6765 bajtów-2 bajty dzięki AdmBorkBork
Wypróbuj online!
źródło
rv b
(alias dlaRemove-Variable
) zamiast$b=@()
zapisywać dwa bajty.Galaretka , 1 bajt
Wypróbuj online!
Chociaż drukarka sprawia, że wygląda na to, że podziały jednego elementu nie są zawijane w listy, w rzeczywistości są.
źródło