o
Verbinde sie mit einer Reihe von s, die Punkte darstellen, vertikal oder horizontal
Beispiele
Eingang:
o o
o
Ausgabe:
o---o
|
|
o
Eingang:
o o o
o
Ausgabe:
o---o----o
|
o
Spec
Wenn Sie möchten, dass die mit Leerzeichen aufgefüllte Eingabe ein Rechteck bildet, geben Sie dies in Ihrer Antwort an
o
Die Eingabe enthält nur Leerzeichen und Zeilenumbrüche- Es wird immer ein Paar Punkte geben, um eine Verbindung herzustellen
- Keine zwei
o
s werden direkt benachbart sein - Für vertikale und horizontale Verbindungen sollten Punkte mit
|
und-
verbunden werden - Es werden keine Punktverbindungen überlappen
Antworten:
Japt,
3329 BytesOnline testen!
Wie es funktioniert
quelle
Ruby,
137133 BytesDas ist absolut schrecklich. Ich versuche immer noch Golf zu spielen.
Bitte als gepolstertes Rechteck eingeben.
Neue Zeile für "Lesbarkeit":
quelle
\b
anstelle von verwenden(?=o)
?Netzhaut , 80 Bytes
Die Eingabe muss gepolstert werden.
Probieren Sie es online!
Erläuterung
Die erste Stufe ist ziemlich einfach, sie verwandelt einfach alle Leerzeichen in Bindestriche, die zwischen zwei gefunden werden
o
s in derselben Zeile befinden.Die zweite Stufe umfasst die
|
s. Dies ist etwas kniffliger und erfordert Bilanzkreise . Der Lookbehindprüft, ob
o
in derselben Spalte eine frühere steht. Denken Sie daran, dass Lookbehinds von rechts nach links gelesen werden sollten.(.)*
Speichert die horizontale Position der Übereinstimmung,\D*¶
prüft, ob in den vorhergehenden Zeilen Zeichen vorkommen, undo
stimmt buchstäblich überein. Dann wird(?(1)!)^(?<-1>.)*
sichergestellt, dass die horizontale Position davono
gleich ist.Der Lookahead
Tut genau das Gleiche in die entgegengesetzte Richtung.
quelle