Schalten Sie das Feld um, wenn Sie eine Zeichenfolge angeben, in der möglicherweise eine Box enthalten ist. Dies wird in den Testfällen und Erklärungen klarer.
Input-Output
Eingabeformat
Die Eingabe ist entweder eine einzelne Zeichenfolge, die durch CR, LF oder CRLF getrennt ist, oder eine Liste von Zeichenfolgen. Das Eingabeformat liegt bei Ihnen.
Ausgabeformat
Das Ausgabeformat muss dasselbe Format wie die Eingabe haben.
Erklärung + Beispiel
Nehmen wir als Beispiel eine Box-Zeichenfolge:
+-------------+
|Hello, World!|
+-------------+
Um das Feld umzuschalten, entfernen wir die erste und letzte Zeile sowie die erste und letzte Spalte. Sie können davon ausgehen, dass nach der letzten Zeile kein nachgestelltes Leerzeichen (mit einem optionalen nachgestellten Zeilenumbruch am Ende der letzten Zeile) und in keiner Zeile ein nachfolgendes Leerzeichen vorhanden ist, wobei die neue Zeile natürlich nicht berücksichtigt wird.
Dies würde werden:
Hello, World!
Der andere Weg
Wenn sich die Zeichenfolge nicht in einem Feld befindet, fügen Sie ein Feld hinzu. Das ist ziemlich einfach; Stellen Sie +---...---+eine eigene Zeile mit kBindestrichen voran, wobei kdie Länge der längsten Zeile angegeben ist, und füllen Sie sie dann für jede Zeile mit einem nachgestellten Leerzeichen auf, um sie an die Länge der längsten Zeile anzupassen, und stellen Sie dann ein Pipe-Zeichen vor und fügen Sie es hinzu ( "|"). Fügen Sie abschließend eine Zeile hinzu, die das gleiche +---...---+Setup wie die erste Zeile enthält.
Beispielsweise:
Hello, World!
wird:
+-------------+
|Hello, World!|
+-------------+
Sie können davon ausgehen, dass keine der Zeilen in der Eingabe nachgestellte Leerzeichen enthält.
Ein weiteres Beispiel für eine Zeichenfolge, um die ein Kästchen gelegt werden sollte:
Hello,
World!
wird
+----------+
|Hello, |
| World!|
+----------+
Ein Beispiel für etwas, das noch verpackt werden sollte:
+--------+
| |
--------+
wird:
+----------+
|+--------+|
|| ||
| --------+|
+----------+
Regeln + Spezifikationen
- Standardschlupflöcher gelten
- Keine Eingabezeile enthält sowohl insgesamt als auch in jeder Zeile ein führendes oder nachfolgendes Leerzeichen, unabhängig davon, ob sie eingegeben wurde oder nicht
- Boxen haben nur
+als Ecken und|für die vertikalen Kanten und-für die horizontalen Seiten. - Eine Box muss ihre Pluspunkte haben, um als Box betrachtet zu werden. Wenn es Höhe oder Breite 2 hat (dh keinen Inhalt), sollte es immer noch entpackt sein, was abhängig von der Höhe der Box zu einer Reihe von Zeilenumbrüchen führen würde.
- Wenn die Eingabe ein Feld enthält, aber Text außerhalb des Felds, sollte das Ganze eingerahmt sein.
- Ihr Programm muss den gesamten Umfang der Zeichenfolge überprüfen. Wenn ein einzelnes Zeichen an der Außenseite nicht korrekt ist (entweder fehlt oder ein anderes Zeichen als das, was es sein sollte), sollte es eingerahmt und nicht entpackt werden.
- Die Zeichenfolge ohne Box selbst kann enthalten
+ | -. Wenn die Zeichenfolge ohne Box selbst eine Box enthält, geben Sie die Zeichenfolge mit der Box zurück. Es sollte nur einmal entpackt werden.
Randfälle
1: Kleine Kisten
Eingang:
++
++
Die Ausgabe ist eine leere oder eine neue Zeile
Eingang:
+----+
+----+
Die Ausgabe ist leer oder eine neue Zeile
Eingang:
++
||
||
++
Ausgabe ist 2 Zeilenumbrüche oder 3 Zeilenumbrüche
2: Teilbox
Eingang:
+-------+
| Hello |
+ ------+
Ausgabe:
+---------+
|+-------+|
|| Hello ||
|+ ------+|
+---------+
3: Text außerhalb des Feldes
Eingang:
+-------+
a| Hello |
+-------+
Ausgabe:
+----------+
| +-------+|
|a| Hello ||
| +-------+|
+----------+