Étant donné une chaîne potentiellement encadrée, basculez la boîte. Cela devient plus clair dans les cas de test et l'explication.
Entrée sortie
Format d'entrée
L'entrée sera soit une seule chaîne séparée par CR, LF ou CRLF, soit une liste de chaînes. Le format d'entrée est à vous de décider.
Format de sortie
Le format de sortie doit être au même format que l'entrée.
Explication + exemple
Prenons une chaîne encadrée comme exemple:
+-------------+
|Hello, World!|
+-------------+
Pour basculer la case, nous supprimons la première et la dernière ligne et la première et la dernière colonne. Vous pouvez supposer qu'il n'y aura aucun espace de fin après la dernière ligne (avec un retour à la ligne facultatif à la fin de la dernière ligne), et aucun espace de fin sur aucune ligne, sans compter le retour à la ligne bien sûr.
Cela deviendrait:
Hello, World!
L'autre côté
Si la chaîne n'est pas dans une boîte, ajoutez-y une boîte. C'est assez simple; ajouter +---...---+sur sa propre ligne avec des ktirets où kest la longueur de la ligne la plus longue, puis pour chaque ligne, le remplir avec des espaces de fin pour correspondre à la longueur de la ligne la plus longue, puis ajouter et ajouter un caractère de tuyau ( "|"). Enfin, ajoutez une ligne contenant la même +---...---+configuration que la première ligne.
Par exemple:
Hello, World!
devient:
+-------------+
|Hello, World!|
+-------------+
Vous pouvez supposer qu'aucune des lignes de l'entrée n'aura d'espace blanc de fin.
Un autre exemple de chaîne qui devrait contenir une boîte:
Hello,
World!
devient
+----------+
|Hello, |
| World!|
+----------+
Un exemple de quelque chose qui devrait encore être encadré:
+--------+
| |
--------+
devient:
+----------+
|+--------+|
|| ||
| --------+|
+----------+
Règles + spécifications
- Les échappatoires standard s'appliquent
- Aucune ligne d'entrée ne comportera d'espaces de début ou de fin à la fois globalement et sur chaque ligne, qu'elle ait ou non été encadrée
- Les boîtes n'auront que
+leurs coins et|pour les bords verticaux et-pour les côtés horizontaux. - Une boîte doit avoir ses avantages en place pour être considérée comme une boîte; s'il a une hauteur ou une largeur 2 (c'est-à-dire aucun contenu), il doit toujours être déballé, ce qui entraînerait un tas de nouvelles lignes, selon la hauteur de la boîte.
- Si l'entrée a une boîte mais du texte en dehors de la boîte, le tout doit être encadré.
- Votre programme doit vérifier tout le périmètre de la chaîne. Si un seul caractère à l'extérieur n'est pas correct (soit un caractère manquant ou différent de ce qu'il devrait être), alors il doit être encadré et non déballé.
- La chaîne non mise en boîte elle-même peut contenir
+ | -. Si la chaîne non encadrée elle-même a une boîte autour d'elle, renvoyez la chaîne avec la boîte; il ne doit être déballé qu'une seule fois.
Étuis Edge
1: Petites boîtes
Contribution:
++
++
La sortie est un vide ou une nouvelle ligne
Contribution:
+----+
+----+
La sortie est vide ou une nouvelle ligne
Contribution:
++
||
||
++
La sortie est 2 nouvelles lignes ou 3 nouvelles lignes
2: Boîte partielle
Contribution:
+-------+
| Hello |
+ ------+
Production:
+---------+
|+-------+|
|| Hello ||
|+ ------+|
+---------+
3: Texte à l'extérieur de la boîte
Contribution:
+-------+
a| Hello |
+-------+
Production:
+----------+
| +-------+|
|a| Hello ||
| +-------+|
+----------+