Schreiben Sie ein Programm oder eine Funktion, die bei gegebenem Text, mehreren Spalten und der Spaltenbreite den Text in Spalten formatiert. Dies ist Klartext- Typografie .
Regeln
Eingang
- Der Text ist eine Zeichenfolge aus druckbarem ASCII und kann Zeilenumbrüche und Leerzeichen (jedoch keine Tabulatoren) enthalten.
- Die Anzahl der Spalten ist eine positive Ganzzahl.
- Die Spaltenbreite ist eine Ganzzahl größer oder gleich 2, die angibt, wie viele Zeichen pro Spalte vorhanden sind.
Für diese Herausforderung besteht ein Wort aus Nicht-Leerzeichen. Die Eingabe besteht aus einer Zeichenfolge und zwei Ganzzahlen, die in beliebiger Reihenfolge verwendet werden können.
Ausgabe
Die Ausgabe ist der Text, der in ausgeglichenen Spalten mit so vielen Wörtern in jeder Zeile formatiert ist, wie passen.
- Wenn ein Wort zu lang ist, um in eine Spalte zu passen, setzen Sie das Wort in die nächste Zeile, wenn sich in der aktuellen Zeile ein anderes Wort befindet und die Zeile mit maximal drei Leerzeichen auf die Spaltenbreite aufgefüllt werden kann.
- Andernfalls trennen Sie das Wort so, dass es den Rest der Zeile ausfüllt. Bindestrich überall dort, wo die Linie endet; Mach dir keine Sorgen über das Trennen zwischen Silben.
- Spalten sollten durch einen Rand von vier Leerzeichen getrennt werden.
- Die Spalten sollten so ausgeglichen sein, dass sie nach Möglichkeit alle die gleiche Anzahl von Zeilen haben.
- Die Spalten ganz links sollten bei Bedarf eine zusätzliche Zeile enthalten.
- Zeilenumbrüche und mehrere Leerzeichen sollten beibehalten werden. Nachgestellte Leerzeichen sind nach der letzten Spalte optional.
Beispiele
Text:
The number of columns will be a positive integer. Columns should be separated by a margin of four space characters.
The columns should be balanced. The column width is greater than two.
Spalten: 3, Breite: 10
The number separated ns should
of columns by a marg- be balanc-
will be a in of four ed. The
positive space cha- column wi-
integer. racters. dth is gr-
Columns eater than
should be The colum- two.
Text:
This line is hyphenated.
This line, on the other hand, is not.
Spalten: 1, Breite: 20
This line is hyphen-
ated.
This line, on the
other hand, is not.
Text: Tiny columns.
Spalten: 4, Breite: 2
T- c- u- s.
i- o- m-
ny l- n-
Text: Two spaces.<space>
Spalten: 5, Breite: 2
T- p- c- s.
wo s- a- e-
Text: <newline>A phrase
Spalten: 2, Breite: 5
rase
A ph-
Text: A short sentence.
Spalten: 10, Breite: 5
A sh- ort sent- ence.
Text: It's "no word" 1234567890 -+-+-+-+ (*&!)
Spalten: 3, Breite: 6
It's 12345- +-+
"no 67890 (*&!)
word" -+-+--
Das ist Code-Golf ; Es gelten Standardregeln.
quelle
s:'tiny', c:4, w:2
=t- i- n- y
odert- i- ny
??t- i- ny
. Ist jetzt alles in Ordnung oder muss ich es erneut reparieren?tiny s
seint- i- n- y_ s
odert- i- ny s
Antworten:
Python 2,
346338 BytesEingabe als
'string',C,W
quelle
rstrip()
.strip()
am ende.C ++ 414
Vielen Dank an @ceilingcat für einige sehr schöne Golfstücke - jetzt noch kürzer
Probieren Sie es online aus!
quelle