Ihre Aufgabe ist es, ein Programm zu schreiben, das ein Array und eine Zahl angibt. Sie müssen das Array in Blöcke aufteilen, deren Größe die Zahl ist.
Regeln
Ihr Programm erhält ein Array A
sowie eine positive Ganzzahl n
. Das Array sollte dann in Abschnitte mit einer Länge aufgeteilt werden n
, wenn die Länge des Strings nicht durch n
einen Rest am Ende teilbar ist. Dies sollte als eigener Abschnitt betrachtet werden.
Wenn
n
größer als die Länge des Arrays istA
, müssen Sie das Array zurückgebenA
. Beispiel: Wennn = 4
undarray A = [1,2,3]
, müssen Sie zurückgeben[1,2,3]
Das Array kann einen beliebigen Typ anstelle einer Zahl enthalten.
Sie sollten die Reihenfolge (oder Richtung) eines Elements nicht von links nach rechts ändern. Zum Beispiel
if n = 2
undA= [1,2,3]
. Jedes Ergebnis[[1,2],[3]]
ist ungültig.
Testfälle
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]]
Das ist Code-Golf , also gewinnen Sie die kürzesten Bytes jeder Sprache.
quelle
n
größer als die Länge ist, dieA
wir zurückgebenA
müssen‽ Sind Sie sicher, dass Sie das nicht meinen[A]
?n
sollte zurückkehren[A]
, zB[[1,2,3]]
. Was ist, wennn
genau die Länge vonA
?A
anstatt[A]
, was eine ganze Reihe von Sprachen ausschließen würde.Antworten:
05AB1E , 1 Byte
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Builtins ftw. :)
quelle
JavaScript (ES6), 36 Byte
Übernimmt die Eingabe als
(n)(array)
.Probieren Sie es online!
Kommentiert
quelle
APL (Dyalog Unicode) , 12 Byte SBCS
Ein großes Dankeschön an Adám, der im Grunde genommen das ganze Golfen gemacht hat (und im Grunde genommen das ganze APL-Wissen, das ich derzeit habe> _>).
Erläuterung
Ausführung
Argumente
2
,1 2 3 4 5 6 7
. Beachten Sie, dass APL-Arrays in der Forma b c
mit optionalen umgebenden Klammern vorliegen .Probieren Sie es online!
quelle
Python 3 , 61 Bytes
Probieren Sie es online!
Ändert die vorhandene Python 3-Lösung von Henry T , um eine gültige Ausgabe für n> = len (A) zu erzeugen.
Posten als eigene Antwort aufgrund fehlender Kommentarberechtigungen.
quelle
Prolog (SWI) ,
908461 BytesCode:
Das Eingabeformat mag etwas komisch sein, aber es ist:
Zum Beispiel für die Eingabe:
Sie müssten verwenden
[1, 2, 3, 4, 5, 6] * 2 * Result.
.Probieren Sie es online!
Ungolfed-Version:
Probieren Sie es online! .
quelle
PHP, 15 Bytes
benötigt PHP 7. Mit aufrufen
$f(ARRAY, N)
.quelle
Perl 6 , 13 Bytes
Probieren Sie es online!
Curry-Funktion umhüllt das
batch
eingebaute.quelle
;
nach dem Whatever-Code einen haben mussten?;
wenn Sie Argumente mit$^a
oder übergeben@_
.Sauber , 54 Bytes
Probieren Sie es online!
quelle
Python 2 , 39 Bytes
Probieren Sie es online!
Nimmt an, dass 1 Block pro Zeile eine akzeptable Ausgabe ist.
quelle
Brainfuck, 71 Bytes
Keine Ahnung, ob das zählt oder nicht ... Eingabeformat:
Übernimmt die Eingabe und fügt bei jeder Zeichenübergabe ein Leerzeichen
n
einErklärung (keine Kommas, da dies das Programm beschädigen würde):
quelle
,
mehr verwenden) häufiger verwendet wird, wird möglicherweise eine Zelle platziert, auf die leichter zugegriffen werden kann als wenn sie platziert wurde in anderen Zellen) oder verwenden Sie einen Bruteforcer. Ich habe keine Erfahrung mit Golfspielen in BF, daher sind diese Vorschläge möglicherweise nicht hilfreich.n n n A space
als meine Zelle Setup, wenn Sie sich einen besseren WegA space n n n ...
funktionieren (oderspace A n n n...
)?Python 3, 46 Zeichen
-1 danke an @Collin Phillips.
Probieren Sie es online!
quelle
CJam , 3 Bytes
Dies ist ein anonymer Block, der ein Array von Zahlen und eine Zahl aus dem Stapel entnimmt und durch ein Array von Arrays ersetzt.
Probieren Sie es online!
quelle
Brachylog , 2 Bytes
Probieren Sie es online!
quelle
Elixier , 16 Bytes
Probieren Sie es online!
quelle
Holzkohle , 1 Byte
Probieren Sie es online! Die Standard-E / A von Charcoal macht es schwierig, nur Zeichenfolgen zu verwenden. Wenn Sie ein vollständiges Programm wünschen, das numerische Listen aufnimmt und formatierte Listen ausgibt, können Sie dies wie folgt tun:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
quelle
C # (Visual C # Interactive Compiler) ,
787743 ByteProbieren Sie es online!
Ich denke, wir sollten einfach schreiben können,
int i;
weil 0 der Standardwert von int ist. Ich lasse es den Fehler zu vermeiden:error CS0165: Use of unassigned local variable 'i'
.quelle
F # (.NET Core) , 15 Byte
Probieren Sie es online!
Nun, F # hat einen eingebauten ...
quelle
J , 4 Bytes
Probieren Sie es online!
Nimmt das Array als linkes Argument und die Blockgröße als rechtes Argument.
Verwendet einen dyadischen Hook und das Infix-Adverb mit einem negativen Argument, das per Definition das tut, was wir wollen.
Hinweis: Der Rückgabetyp muss mit einem Kästchen versehen werden, da J nur Tabellen mit gleichen Größen zulässt.
quelle
Japt , 2 Bytes
Probieren Sie es online!
quelle
PHP , 45 Bytes
Probieren Sie es online!
quelle
array_chunk
eine gültige Antwort?Java 10,
10680 BytesDruckt die Blöcke ohne Trennzeichen.
Probieren Sie es online aus.
106 Bytes:
Gibt tatsächlich eine Liste von Listen zurück.
Probieren Sie es online aus.
Erläuterung:
quelle
K (oK) , 10 Bytes
Probieren Sie es online!
quelle
Ruby , 25 Bytes
Probieren Sie es online!
Wenn wir Enumeratoren anstelle von Arrays zurückgeben können, wird es einfach:
Ruby , 21 Bytes
Probieren Sie es online!
quelle
PicoLisp ,
7574 BytesProbieren Sie es online!
quelle
Kokosnuss , 8 Bytes
Probieren Sie es online!
quelle
V , 6 Bytes
Probieren Sie es online!
Hexdump:
Erläuterung:
quelle
Clojure, 14 Bytes
Builtins, denke ich
quelle
Haskell , 26 Bytes
Hier ist eine interessantere Version mit nur ein paar weiteren Bytes (danke an nimi für fünf Bytes in jeder Lösung):
Haskell , 31 Bytes
Probieren Sie es online!
quelle
n!x=take n x:n!drop n x
.Data.Lists
bietet auchchunksOf
.PowerShell ,
6765 Byte-2 Bytes danke AdmBorkBork
Probieren Sie es online!
quelle
rv b
(Alias fürRemove-Variable
), anstatt$b=@()
zwei Bytes zu speichern.Gelee , 1 Byte
Probieren Sie es online!
Der Drucker sieht zwar so aus, als würden Einzelelement-Splits nicht in Listen eingeschlossen, aber tatsächlich.
quelle