Ihre Aufgabe ist es, zwei "ASCII Art" als Eingabe zu akzeptieren und jedes Kunstwerk horizontal nebeneinander auszurichten.
Angenommen, Sie haben zwei Zeichenfolgen "abc\ndef"
und "123\n456"
. Sie müssen sie horizontal ausrichten, um die Zeichenfolge zu erzeugen. "abc123\ndef456
"Ich bezeichne dies als" horizontal ausrichten ", da die Eingaben beim Drucken wie folgt aussehen:
abc
def
und:
123
456
Die Ausgabe sieht beim Drucken folgendermaßen aus:
abc123
def456
Beachten Sie, wie ein Eingang neben dem anderen platziert wird.
Eingang
- Die Eingabe erfolgt als Zeichenfolge und kann als zwei separate Argumente oder als Folge von Zeichenfolgen erfolgen.
- Die Zeichen in den Künsten haben Dezimalcodes im Bereich von 32-126 (einschließlich).
- Es ist in Ordnung, eine beliebige Anzahl von Künsten anstelle von nur zwei zu unterstützen (aber offensichtlich müssen Sie mindestens zwei unterstützen).
- Sie können davon ausgehen, dass jedes Bild die gleichen Abmessungen hat und mindestens eine Zeile enthält.
Sie müssen mindestens 100x100 Zeichen unterstützen können.
Um sich an die Konventionen auf der Site anzupassen, spielt die Reihenfolge der Argumente keine Rolle. Es ist egal, welche Kunst links oder rechts ist.
Ausgabe
Die Ausgabe erfolgt nach den oben genannten Regeln, entweder als Rückgabe oder als Ausgabe an die Standardausgabe.
Alle nachfolgenden Leerzeichen sind optional.
Es darf keine visuelle Trennung zwischen den ausgerichteten Künsten geben.
Eingabe- und Ausgabekünste müssen Zeichenfolgen sein \n
oder voneinander getrennt werden \r
. Es wäre zu trivial, 2D-Arrays zuzulassen.
Einsendungen können Funktionen oder vollständige Programme sein.
Testfälle:
"abc\ndef", "123\n456" -> "abc123\ndef456".
"qwertyuiop\n asdfghjkl", "Some other\nTextFiller" -> "qwertyuiopSome other\n asdfghjklTextFiller"
" * \n *** \n*****\n *** \n * \n", " + \n + \n+++++\n + \n + \n" -> " * + \n *** + \n*****+++++\n *** + \n * + \n"
"|"
oder" "
?\r
statt verwenden\n
?Antworten:
Canvas , 1 Byte
Probieren Sie es hier aus!
quelle
Haskell , 37 Bytes
Probieren Sie es online!
IO als Zeilenlisten wäre eben
zipWith(++)
. : Pquelle
Python 2 , 59 Bytes
Probieren Sie es online!
quelle
05AB1E , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
Gelee , 4 Bytes
Probieren Sie es online!
quelle
Perl 5
-0F
, 28 BytesIncludes
+2
für das\n
Argument to-F
(es ist "Code", also sollte es zählen)Geben Sie die Eingaben direkt nacheinander auf STDIN.
Probieren Sie es online!
quelle
Bash + Coreutils, 14
Die Eingabe erfolgt als zwei Dateinamen als Befehlszeilenparameter.
Probieren Sie es online aus .
quelle
paste -d "" $@
-d ""
ich versucht-d""
, was natürlich nicht anders ist als-d
Perl 6 , 27 Bytes
Probieren Sie es online!
Arbeitet mit beliebig vielen Künsten. IO als Liste von Listen wäre halt
&[Z~]
.quelle
APL (Dyalog Unicode) , 9 Byte SBCS
Volles Programm. Fordert (STDIN) zur Eingabe einer beliebigen
\r
Längenliste von Zeichenfolgen mit Begrenzung auf. Die Saiten können ungleichmäßig und unterschiedlich breit sein, solange sie die gleiche Anzahl von Linien haben. Druckt (STDOUT) die resultierenden ASCII-Grafiken.Probieren Sie es online!
⎕
Eingabeaufforderung für ausgewertete Eingabe⎕FMT¨
jeweils formatieren (alle Steuerzeichen auswerten und Zeichenmatrix zurückgeben),/
horizontal kombinieren (Verkettungsreduzierung)⊃
enthüllen (weil die Reduktion den Rang von 1 auf 0 reduziert hat)quelle
Java 8,
1008478 BytesBeendet mit einem
ArrayIndexOutOfBoundsException
an STDERR, nachdem das Ergebnis an STDOUT ausgegeben wurde, was zulässig ist .-6 Bytes dank @ OlivierGrégoire .
Erläuterung:
Probieren Sie es online aus.
quelle
a->b->{for(int i=0;;)System.out.println(a.split("\n")[i]+b.split("\n")[i++]);}
78 Bytes. Es wird nichts darüber gesagt, keine zusätzlichen Nebenwirkungen zu haben. Wir können also einfach zählen, bis eine Ausnahme auftritt.Ruby , 48 Bytes
Probieren Sie es online!
Ein Lambda, der zwei Saiten nimmt und eine Saite zurückgibt. Wenn Sie das Standardtrennzeichen
split
auf newline with setzen$;=$/;
, werden keine Bytes gespeichert , aber der Rest sieht ein bisschen besser aus.Ruby , 49 Bytes (beliebig viele Strings)
Probieren Sie es online!
Nur zum Spaß. Es stellt sich heraus, dass wir ein Array von Zeichenfolgen gegen einen Aufpreis von nur 1 Byte akzeptieren können.
quelle
JavaScript (ES6), 51 Byte
quelle
Wunder , 21 Bytes
Anwendungsbeispiel:
#n
wird anstelle von\n
Zeilenumbrüchen verwendet.Erläuterung
Ausführliche Version:
Teilen Sie jede Zeichenfolge im Eingabearray entlang von Zeilenumbrüchen auf, komprimieren Sie sie mit verketteten Zeichenfolgen und geben Sie die einzelnen Elemente aus.
quelle
Kotlin , 73 Bytes
Probieren Sie es online!
quelle
Add ++ , 24 Bytes
Probieren Sie es online!
quelle
C 96 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 52 Byte
Übernimmt Eingaben in der Currying-Syntax
(a)(b)
.Probieren Sie es online!
quelle
Julia 0,6 , 41 Bytes
Probieren Sie es online!
quelle
PowerShell ,
51 bis49 ByteProbieren Sie es online!
Nimmt Eingaben als wörtliche Zeichenfolgen mit Zeilenumbrüchen an. Sie können stattdessen auch
`n
(den Zeilenumbruchbegrenzer in PowerShell, nicht\n
) verwenden.Zuerst setzen wir
-split
den linken Eingabestring in Zeilenumbrüche, wodurch ein Array erstellt wird, und durchlaufen diesen|%{...}
. Bei jeder Iteration verketten wir die Zeichenfolge mit der richtigen Eingabezeichenfolge, die wiederum in Zeilenumbrüche aufgeteilt, indiziert und inkrementiert wird.Diese
Write-Output
verbleiben in der Pipeline, und der implizite Abschluss gibt die Ausgabe als Array von Zeichenfolgen aus, die mit Zeilenumbrüchen dazwischen gedruckt werden.quelle
APL (Dyalog Unicode) , 22 Byte ( Adáms SBCS )
Probieren Sie es online!
quelle
Rot , 78 Bytes
Probieren Sie es online!
quelle
Japt
-R
,87 BytesVersuch es
Erläuterung
Alternative
Versuch es
quelle
Bash , 92 Bytes
Probieren Sie es online!
Ungolfed:
Beispiele:
Ich habe auch eine kürzere, aber es schlägt fehl, wenn die zweite
read
Anweisung einen Wert ungleich Null zurückgibt.Bash , 55 Bytes
Hinweis: Scheint
<&3
auf tio.run nicht zu funktionierenDieser verwendet Dateideskriptoren (
1
und3
) anstelle von Argumenten:quelle
Kohle , 8 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Fügen Sie 2 Bytes hinzu, um mehrere Eingaben zu akzeptieren:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Fügen Sie 4 Bytes hinzu, um ungepolsterte Eingaben zu akzeptieren:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
quelle
JavaScript (Node.js) , 79 Byte
Probieren Sie es online!
Unterstützt eine beliebige Anzahl von ASCII-Künsten, die zusammengefügt werden, anstatt nur 2 (wie in den beiden vorherigen JS-Antworten).
quelle
Sauber , 61 Bytes
Probieren Sie es online!
quelle
Schnelle 4 , 119 Bytes
Erläuterung
Probieren Sie es online!
quelle