Ich definiere vier Boxstile:
+-----+ ooooooo ^^^^^ *******
| 1 | o 2 o < 3 > * 4 *
| | o o < > * *
+-----+ ooooooo vvvvv *******
Schreiben Sie ein Programm oder eine Funktion, die mit einer Ganzzahl und einer Zeichenfolge eines der obigen Kästchen in der Zeichenfolge findet und dessen Stil in den vom Benutzer gewünschten Kästchenstil ändert. Beispielsweise:
1
This is a test document.
It ********* has
no *purpose* other than
dem*onstrat*ion.
*********
Wird:
This is a test document.
It +-------+ has
no |purpose| other than
dem|onstrat|ion.
+-------+
Sie können davon ausgehen, dass die Eingabe genau ein gültiges Feld enthält, das mindestens 3x3 ist. Ihr Code muss unvollständige / falsche Felder ignorieren:
ooooooooooooooooooooooooooooooooo
o This is not a box. o This is. o
ooooooooooo ooooo ooooooooooooooo
^^^^ ######
<NOPE> #NOPE#
vVVv ######
Kürzester Code in Bytes gewinnt.
o This is. o
undo This is no
(mit Zeilen vono
oben und unten natürlich).Antworten:
Julia,
995818713613 BytesUngolfed mit Erklärung:
Im Gegensatz zu meiner ersten Vorgehensweise funktioniert dieser Code nur für "gültige" Typennummern - 1, 2, 3 oder 4. Er ist in zwei Teile unterteilt - einen Boxfinder und einen Boxersetzer. Der Box-Finder-Code function
f(t)
verwendet reguläre Ausdrücke, um Oberseiten und für die einfacheren Boxen (Typen 2 und 4) Unterseiten zu lokalisieren.Der erste reguläre Ausdruck ist der einfachste Weg, den ich finden konnte, um die Box-Tops zu finden. Hier ist die Logik davon:
Der Code wird folgendermaßen verwendet:
Das Drucken ist in der Funktion nicht enthalten, da das Ausgabeformat nicht angegeben ist. Ich gebe nur die Zeichenfolge zurück. Sie können sie anschließend wie oben gezeigt drucken.
quelle