Einführung
Arrays können auch als Feld für einen springenden Ball betrachtet werden. Das klingt natürlich sehr vage, daher hier ein Beispiel für eine Eingabe:
[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]
Die Herausforderung besteht darin, die zurückgeworfenen Arrays auszugeben . Diese bestehen aus diagonalen Mustern, die an den Feldrändern abprallen. Dieser Weg ist nach oben gerichtet . Der Pfad für das erste zurückgeworfene Array (in dem der Pfad direkt von der egde zurückgeworfen wird) lautet:
[1, -, -, -, 5, -, -, -, 9]
[-, 8, -, 6, -, 4, -, 2, -]
[-, -, 3, -, -, -, 7, -, -]
Dies würde von links nach rechts zur Folge haben [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Dies ist unser erstes abgepralltes Array. Der Pfad für das zweite zurückgeworfene Array:
[-, 2, -, -, -, 6, -, -, -]
[9, -, 7, -, 5, -, 3, -, 1]
[-, -, -, 4, -, -, -, 8, -]
Dies führt zu [9, 2, 7, 4, 5, 6, 3, 8, 1]
. Der Pfad für das dritte zurückgeworfene Array lautet:
[-, -, 3, -, -, -, 7, -, -]
[-, 8, -, 6, -, 4, -, 2, -]
[1, -, -, -, 5, -, -, -, 9]
Dies führt zu [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Die drei abgeprallten Arrays sind also:
[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]
Aufgabe
Bei mindestens einem Array, das nur nicht negative Ganzzahlen enthält und bei dem alle Arrays die gleiche Länge haben, werden alle zurückgeworfenen Arrays ausgegeben.
Testfälle
Testfall 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]
Das ist Code-Golf , also gewinnt die Einsendung mit der geringsten Anzahl von Bytes!
Antworten:
Pyth, 17 Bytes
Erläuterung:
Probieren Sie es hier aus .
quelle
JavaScript (ES6), 70
PRÜFUNG
quelle
CJam,
3130 BytesEin- und Ausgabe als Liste von Arrays im CJam-Stil.
Teste es hier.
Auf jeden Fall golfen ...
quelle
Jelly,
292524 BytesVielen Dank für @ Sp3000, dass Sie mir geholfen haben, 5 Bytes Golf zu spielen!
Probieren Sie es online!
quelle
Ruby (2.2.2p95), 124 Bytes
Das könnte wahrscheinlich viel besser sein. Ich werde später herausfinden, wie!
quelle
Japt,
55494139 BytesWow, das war wirklich knifflig und hat wahnsinnig Spaß gemacht.
Online testen!
Ausgänge in umgekehrter Reihenfolge zu den Beispielen. Bei Eingaben von mehr als 100 Arrays wird dies leicht unterbrochen. hoffentlich macht das nicht allzu viel aus.
Nicht konkurrierende Version, 36 Bytes
Ich hatte diese beiden Nummernfunktionen vor der Herausforderung implementiert:
ò
- wieo
, kehrt aber zurück[X..Y]
statt[X..Y)
ó
- wieo
, kehrt aber zurück[X..X+Y)
statt[X..Y)
Aufgrund eines Verlegers
0
waren sie jedoch fehlerhaft und gaben immer leere Arrays zurück. Dies wurde nun behoben.Online testen!
quelle
Python 2,
107106108105104 Bytes(Einige zusätzliche Parens entfernt) (Falscher Startort (ب_ب)) (hatte bereits eine Liste mit dieser Länge)
Es ist legal, die Eingabe als Argument für eine Funktion zu haben, oder? Dies ist mein erstes Mal, dass ich meine Code Golf Antwort abschicke.
quelle
APL, 33 Zeichen
Angenommen, ⎕IO ← 0. Die Idee ist, dass die Sprungbewegung durch einfaches Verschieben einer Matrix nach oben erhalten werden kann, wenn die ursprüngliche Matrix entlang der ersten Dimension vergrößert wird, wobei die Matrix mit der ersten und der letzten rasierten Reihe umgekehrt wird. Grafisch:
von
In APL
reverse
undupward rotate
ist das gleiche Symbol:⊖
.quelle
⊃
statt0⌷
.Clojure, 125 Bytes
Wow, das hat sich ziemlich schnell angesammelt.
let
Ich versuche nur, Bytes zu speichern, indem ich häufig verwendete Werte definiere.quelle
Jelly *, 15 Bytes
Probieren Sie es online!
* Neuere Version
quelle