Für die aktuelle Herausforderung, ein Wort zu "umreißen", bedeutet dies, es nacheinander mit eigenen Buchstaben zu umgeben, beginnend mit dem letzten, und schließlich das ursprüngliche Wort in der Mitte durch Leerzeichen zu ersetzen:
oooooo
onnnno
on -> on no
onnnno
oooooo
Aufgabe:
Wenn Sie eine Liste von Wörtern erhalten, die nur aus englischen Klein- und / oder Großbuchstaben besteht, skizzieren Sie jedes Wort und zeigen Sie alle resultierenden Blöcke horizontal nebeneinander an, getrennt durch eine Spalte mit einem Leerzeichen, die vertikal in der Mitte der Blöcke ausgerichtet ist.
Sie können ein vollständiges Programm oder eine Funktion schreiben.
Eingang:
Eine Liste von Wörtern oder, wenn Sie möchten, eine durch Leerzeichen oder andere Symbole getrennte Zeichenfolge
Ausgabe:
Die ASCII-Darstellung der Blöcke für die umrissenen Wörter. Führende / nachfolgende Leerzeichen sind zulässig.
Testfälle:
Input 1: ["code", "golf"] (or "code golf")
Output 1:
cccccccccccc gggggggggggg
cooooooooooc goooooooooog
coddddddddoc gollllllllog
codeeeeeedoc golfffffflog
code edoc golf flog
codeeeeeedoc golfffffflog
coddddddddoc gollllllllog
cooooooooooc goooooooooog
cccccccccccc gggggggggggg
Input 2: ["I", "am", "just", "a", "man"] (or "I am just a man")
Output 2:
jjjjjjjjjjjj
juuuuuuuuuuj mmmmmmmmm
aaaaaa jussssssssuj maaaaaaam
III ammmma justtttttsuj aaa mannnnnam
I I am ma just tsuj a a man nam
III ammmma justtttttsuj aaa mannnnnam
aaaaaa jussssssssuj maaaaaaam
juuuuuuuuuuj mmmmmmmmm
jjjjjjjjjjjj
Gewinnkriterien:
Der kürzeste Code in Bytes in jeder Sprache gewinnt. Ich würde mich sehr freuen, wenn Sie Ihren Code und Ihre Vorgehensweise kommentieren / erläutern.
Antworten:
Canvas ,
22 bis20 ByteProbieren Sie es hier aus!
Erläuterung:
quelle
Kohle , 35 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Durchlaufen Sie die Eingabeliste.
Liefert die Länge des aktuellen Wortes.
Bewegen Sie sich in die linke obere Ecke der resultierenden Kontur.
Schleife einmal für jedes Zeichen.
Zeichnen Sie eine Box mit der richtigen Höhe, Breite und dem richtigen Zeichen.
Bewegen Sie sich in die linke obere Ecke des nächsten Kästchens.
Gehen Sie zur nächsten Gliederung.
quelle
Haskell ,
188183174171167 Bytes-9-13 Bytes dank Laikoni .Probieren Sie es online!
quelle
\a->and[p a>=p x|x<-f<$>w]
kann sein\a->all((p a>=).p)$f<$>w
undk c=(++[c]).(c:)
kann seink c s=c:s++[c]
.Pyth,
3433 BytesProbieren Sie es online aus.
Gibt eine ganze Reihe von zusätzlichen Leerzeichen aus, aber die Herausforderung lässt dies zu.
Erläuterung
m
…Q
Macht für jedes Wortd
in der Eingabe FolgendesQ
:m\ d
Ordnet das Wort mit zux => " "
, wobei im Wesentlichen die Liste[" ", ..., " "]
mit so vielen Elementen erstellt wird, wie das Wort Buchstaben enthält..idd
verschachtelt das Wort mit sich selbst und wiederholt die Buchstaben des Wortes zweimal._
kehrt diese Zeichenfolge um.word
wirdddrrooww
.u
Beginnt mitG
= dem Array von Leerzeichen und wendet für jeden Buchstaben in der verschachtelten Zeichenfolge Folgendes anH
:*2H
wiederholt den Charakter zweimal.jR
…G
Setzt jede ZeichenfolgeG
zwischen das Zeichenpaar.C
vertauscht Zeilen und Spalten. Wenn diese drei Schritte zweimal mit demselben Zeichen ausgeführt werdenH
, werden die ZeilenG
mit diesem Zeichen umrissen .d
.+;
Stellt eine Leerzeichenspalte voran.s
Reduziert das Spaltenarray für jedes Wort undJ
speichert es in der VariablenJ
.m
…J
Macht für jede Spalte der Ausgabe Folgendes:.[lJd;
Füllt beide Seiten der Spalte mit Leerzeichen auf, sodass die Länge der Spalte der Anzahl der Spalten entspricht. Dies reicht immer aus, um die Spalten vertikal auszurichten.C
j
wandelt die Spalten in Zeilen um und verbindet die Zeilen mit Zeilenumbrüchen.Alternative Lösung, 33 Bytes
Probieren Sie es online aus.
Beachten Sie, dass ein Leerzeichen vorhanden ist. Meist derselbe Algorithmus, nur Spalten oben auffüllen und dann mit Leerraumfüllung transponieren.
quelle
R , 189 Bytes
Probieren Sie es online!
Eine Zusammenarbeit zwischen digEmAll und mir im Chat .
quelle
APL (Dyalog Classic) ,
575150 BytesProbieren Sie es online!
quelle
Stax ,
2625 BytesFühren Sie es aus und debuggen Sie es
quelle
05AB1E , 46 Bytes
Nicht sehr glücklich darüber, aber ich bin froh, dass es funktioniert.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle