Ich hatte einmal eine schöne rechteckige Anordnung. Es war sehr symmetrisch, aber leider ist es auseinandergefallen und jetzt habe ich nur die obere linke Ecke. Ihre Aufgabe wird es sein, das ursprüngliche Array wiederherzustellen.
Ihr Programm erhält ein zweidimensionales Array von Ganzzahlen. Um das Parsen zu vereinfachen, können Sie davon ausgehen, dass alle Werte zwischen 1 und 9 liegen. Ihre Aufgabe ist es, die Spalten und Zeilen des Arrays umzukehren, die resultierenden Ecken zusammenzufügen und das resultierende Array zurückzugeben.
Sie können davon ausgehen, dass die Array-Abmessungen mindestens 1x1 betragen.
Testfälle:
Input:
1 2 3
4 5 6
Output:
1 2 3 3 2 1
4 5 6 6 5 4
4 5 6 6 5 4
1 2 3 3 2 1
Input:
1
Output:
1 1
1 1
Input:
9
9
9
Output:
9 9
9 9
9 9
9 9
9 9
9 9
Das ist Code-Golf , die wenigsten Bytes gewinnen!
WS⟦ι⟧‖M→↓
vielleicht? 5 Bytes, um die Eingabe zu lesen und 4, um sie wiederzugeben.╬
(oder einem ähnlichen) Charakter macht und sich nicht daran erinnern kann, welche: cAntworten:
Proton , 29 Bytes
Probieren Sie es online!
Es gibt jedoch noch einige andere interessante Ansätze:
Proton , 29 Bytes
Probieren Sie es online!
Sie können die Spiegel-Unterfunktion
g
in-line definieren, weil Proton. Es ist jedoch nicht kürzer.Proton , 36 Bytes
Probieren Sie es online!
Das sollte
(a=>zip(*(a+a[by-1])))*2
24 Bytes sein, aber die Zip-Funktion ist völlig kaputt. Grundsätzlich spiegeln Sie es und zip und tun dies dann zweimal (Sie können eine Funktion mit einer positiven Ganzzahl multiplizieren, um die Funktion mehrmals anzuwenden).quelle
Canvas , 1 Byte
Probieren Sie es hier aus!
Ausgabe als mehrzeilige Zeichenfolge
quelle
Haskell,
2524 BytesProbieren Sie es online!
quelle
Python 3, 38 Bytes
Probieren Sie es online!
Nimmt eine Liste von Listen auf und gibt eine Liste von Listen zurück.
Erläuterung:
quelle
Schale ,
76 BytesZufällig hatte Erik ungefähr eine Minute, bevor ich das gepostet hatte, genau denselben Code im Chatroom von Husk gepostet.
Probieren Sie es online!
Versionsnummer, 7 Bytes :
quelle
Retina , 13 Bytes
Probieren Sie es online!
Erläuterung
Passen Sie in jeder Zeile (
%
) das Ende der Zeile ($
) an, fügen Sie die Umkehrung ($^
) der gesamten Zeile ($`
) ein und drucken Sie das Ergebnis mit einem nachfolgenden Zeilenumbruch (\
). Dadurch wird die Reflexion entlang der vertikalen Achse ausgeführt und die erste Hälfte der Ausgabe gedruckt.Dies kehrt einfach die gesamte Saite um, was einer Drehung um 180 ° entspricht, oder in unserem Fall (aufgrund der horizontalen Symmetrie) eine Reflexion entlang der horizontalen Achse. Auf diese Weise funktioniert dies, da dies die
V
(umgekehrte) Standard-Regex ist(?m:^.*$)
, die normalerweise mit jeder Zeile der Zeichenfolge übereinstimmt. Wir aktivieren jedoch die Option singlelines
, mit der auch.
Zeilenvorschübe abgeglichen werden. Daher entspricht dieser Standard-Regex tatsächlich der gesamten Zeichenfolge.Das Ergebnis wird am Ende des Programms automatisch ausgedruckt und gibt uns die zweite Hälfte der Ausgabe.
quelle
$
in der ersten Zeile. ;) Ich werde später eine Erklärung hinzufügen.05AB1E , 2 Bytes
Probieren Sie es online!
Kredit für Herren Xcoder Hinweis darauf , dass Arrays von String zählen können als 2D - Arrays und Pavel für sie bestätigt.
quelle
Gelee , 5 Bytes
Probieren Sie es online!
quelle
m0Z$⁺
(von Hyper Neutrino).MATL , 5 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Oktave ,
3329 BytesVielen Dank an @ Giuseppe für das Golfen mit vier Bytes!
Probieren Sie es online!
quelle
JavaScript (Node.js) ,
62554946 ByteProbieren Sie es online!
Da
Array.prototype.reverse()
sich das Array umkehrt, muss ich zuerst irgendwo eine flache Kopie erstellen.A=>(j=x=>[...x,...x.reverse()])(A).map(j)
funktioniert nicht.quelle
J , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
awk, 88 bytes
quelle
Dreieckigkeit , 31 Bytes
Probieren Sie es online!
Erläuterung
Das Programm entfernt die Zeichen, aus denen sich das Auffüllen zusammensetzt.
quelle
R , 57 Bytes
Probieren Sie es online!
quelle
APL + WIN, 11 Bytes
Fordert zur Eingabe eines 2d-Arrays von Ganzzahlen auf.
quelle
Stax , 5 Bytes
Führen Sie es online aus und debuggen Sie es
:m
bedeutet Spiegel, was istinput.concat(reverse(input))
.m
bedeutet in diesem Zusammenhang, dass jede Zeile nach dem Anwenden von ... ausgegeben wird.Spiegeln Sie also das Array von Zeilen und spiegeln Sie dann jede Zeile und Ausgabe.
quelle
Japt , 6 Bytes
Probieren Sie es hier aus
Erläuterung
quelle
Mathematica , 29 Bytes
Probieren Sie es online!
quelle
SOGL V0.12 , 2 Bytes
-1 Byte dank dzaima.
Probieren Sie es hier aus!
quelle
APL (Dyalog Classic) , 7 Bytes
Probieren Sie es online!
quelle
Ruby , 35 Bytes
Probieren Sie es online!
Ein Lambda, das ein 2D-Array akzeptiert und ein 2D-Array zurückgibt. Es ist unkompliziert, aber hier ist die ungolfed Version:
quelle
Java 8,
140131 BytesErläuterung:
Probieren Sie es online aus.
quelle
J , 11 Bytes
Anonyme implizite Präfixfunktion.
Probieren Sie es online!
|:
transponieren@(…)
das Ergebnis von:,
das Argument gefolgt von|.
es ist umgekehrt^:2
und das alles zweimalquelle
SNOBOL4 (CSNOBOL4) ,
119113 BytesProbieren Sie es online!
Übernimmt die Eingabe als Zeichenfolge in STDIN ohne Leerzeichen. Dies funktioniert nur, weil die Ziffern sind
1-9
und sonst fehlschlagen würden.quelle
REVERSE
; Soweit ich das beurteilen kann, unterstützt das Original auch nur Ganzzahl-Arithmetik.C (gcc) ,
114111BytesProbieren Sie es online!
C (gcc) , 109 Bytes (missbräuchliche einfache Analyse)
Probieren Sie es online!
quelle
for(i=h+h;i-->0;puts(""))for(j=w+w;j-->0;)
printf("%d"
für ein zusätzlichen -1 Byte.Kohle , 5 Bytes
Probieren Sie es online!
Dank ASCII-only für ein besseres Eingabeformat.
quelle
[]
macht es nicht genau 2D).Addiere ++ , 30 Bytes
Probieren Sie es online!
Die Fußzeile transformiert einfach das verschachtelte Array in das Format in der Frage. Definiert eine Funktion
f
, die eine Matrix (verschachteltes Array) als Argument erwartet.quelle
Julia 0,6 ,
5549 BytesProbieren Sie es online!
~(i)
ist eine Funktion zum Erstellen von Slices voni
unten nach1
.Also
~end
gibts die Scheibeend:-1:1
!(x)
ist die Funktion zum Wiederherstellen des Arrays.quelle
V , 12 Bytes
Probieren Sie es online!
Erläuterung:
quelle