Bei einer Eingabe von zwei Zeichenfolgen mit Sequenzen von Unterstrichen, die entsprechende Wörter darstellen, werden die Sätze mit den ausgefüllten "Leerzeichen" ausgegeben.
Diese Herausforderung lässt sich am besten anhand eines Beispiels beschreiben. Hier ist eine Beispieleingabe:
programming _____________ and code golf
programming puzzles ______ code ____
Und hier ist die entsprechende Ausgabe:
programming ___puzzles___ and code golf
programming puzzles _and__ code golf
Für die Zwecke dieser Herausforderung wird ein "Wort" als eine Folge von einem oder mehreren Kleinbuchstaben definiert, und ein "Leerzeichen" wird als ein oder mehrere Unterstriche definiert (die Eingabe enthält immer nur Kleinbuchstaben, Leerzeichen und Unterstriche). . Wörter und Leerzeichen in den Eingabezeichenfolgen werden durch einzelne Leerzeichen getrennt, und die Summe der Anzahl der Wörter und Leerzeichen in den Sätzen ist immer gleich.
Das Ziel der Herausforderung besteht darin, alle Lücken mit den richtigen Wörtern zu füllen. Dies sind die Wörter, die denselben Index in der anderen Zeichenfolge belegen, wenn sie durch Leerzeichen geteilt werden.
Das Wort muss im Leerzeichen zentriert sein, wie im obigen Beispiel mit dem Wort "Rätsel" gezeigt - auf beiden Seiten verbleibt die gleiche Anzahl von Unterstrichen.
Wenn das Wort nicht genau zentriert werden kann, kann der zusätzliche Unterstrich entweder links oder rechts stehen (z. B. das Wort "und" im obigen Beispiel).
Es wird immer genug Unterstriche geben, damit das Wort passt, aber es kann genau so viele wie die Länge des Wortes geben (z. B. das Wort "Golf" im obigen Beispiel).
In beiden Zeichenfolgen wird niemals ein Leerzeichen an derselben Position angezeigt.
Die Eingabe / Ausgabe kann eine der folgenden sein (Eingabe / Ausgabe muss nicht unbedingt über dieselbe Methode erfolgen):
einzelne Zeichenfolge, die durch ein nicht alphabetisches Zeichen, ein Leerzeichen oder einen Unterstrich getrennt ist (z. B. durch Zeilenumbrüche oder Kommas getrennte Zeichenfolge)
ein Array / eine Liste / etc. von zwei Saiten
zwei Funktions- / Befehlszeilenargumente (nur Eingabe)
Da dies Code-Golf ist , gewinnt der kürzeste Code in Bytes.
Das obige Beispiel kann als Testfall verwendet werden. Hier ist ein größerer Testfall (die zweite Zeichenfolge in der Ausgabe kann aufgrund des unterschiedlichen Zentrierungsverhaltens geringfügig variieren):
lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum ______ sit _______ consectetur _______________ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem ____________________________ dictum
lorem ipsum dolor _sit_ amet __consectetur__ adipiscing elit mauris dapibus tincidunt ____________metus____________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum dolor_ sit _amet__ consectetur __adipiscing___ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem _________fermentum__________ dictum