Dada una cadena que está potencialmente encuadrada, alterna la casilla. Esto se vuelve más claro en los casos de prueba y la explicación.
De entrada y salida
Formato de entrada
La entrada será una sola cadena separada por CR, LF o CRLF, o una lista de cadenas. El formato de entrada depende de usted para decidir.
Formato de salida
El formato de salida debe estar en el mismo formato que la entrada.
Explicación + Ejemplo
Tomemos una cadena en caja como ejemplo:
+-------------+
|Hello, World!|
+-------------+
Para alternar el cuadro, eliminamos la primera y última fila y la primera y última columna. Puede suponer que no habrá espacios en blanco finales después de la última línea (con una nueva línea final opcional al final de la última línea), y que no habrá espacios en blanco finales en ninguna línea, sin contar la nueva línea, por supuesto.
Esto se convertiría en:
Hello, World!
La otra manera
Si la cadena no está en un cuadro, agréguele un cuadro. Esto es bastante simple; anteponer+---...---+ su propia línea con kguiones donde kes la longitud de la línea más larga y luego, para cada línea, rellene con espacios en blanco finales para que coincida con la longitud de la línea más larga y luego anteponga y agregue un carácter de tubería ( "|"). Finalmente, agregue una línea que contenga la misma +---...---+configuración que la primera línea.
Por ejemplo:
Hello, World!
se convierte en:
+-------------+
|Hello, World!|
+-------------+
Puede suponer que ninguna de las líneas en la entrada tendrá espacios en blanco al final.
Otro ejemplo de una cadena que debería tener un cuadro alrededor:
Hello,
World!
se convierte
+----------+
|Hello, |
| World!|
+----------+
Un ejemplo de algo que aún debe encuadrarse:
+--------+
| |
--------+
se convierte en:
+----------+
|+--------+|
|| ||
| --------+|
+----------+
Reglas + Especificaciones
- Se aplican lagunas estándar
- Ninguna línea de entrada tendrá espacios en blanco iniciales o finales tanto en general como en cada línea, independientemente de si se ha encuadrado o no en
- Las cajas solo tendrán
+como esquinas y|para los bordes verticales y-para los lados horizontales. - Una caja debe tener sus ventajas en su lugar para ser considerada una caja; si tiene alto o ancho 2 (es decir, sin contenido), aún debe estar sin caja, lo que daría lugar a un montón de nuevas líneas, dependiendo de la altura del cuadro.
- Si la entrada tiene un cuadro pero texto fuera del cuadro, todo debe estar encuadrado.
- Su programa debe verificar todo el perímetro de la cadena. Si un solo carácter en el exterior no es correcto (ya sea un carácter faltante o diferente de lo que debería ser), entonces debe estar encuadrado, no sin encuadrar.
- La cadena sin caja en sí puede contener
+ | -. Si la cadena sin caja tiene un cuadro alrededor, devuelva la cadena con la caja; solo debe desempacarse una vez.
Casos de borde
1: cajas pequeñas
Entrada:
++
++
La salida es una línea vacía o nueva
Entrada:
+----+
+----+
La salida está vacía o una nueva línea
Entrada:
++
||
||
++
La salida es de 2 líneas nuevas o 3 líneas nuevas
2: caja parcial
Entrada:
+-------+
| Hello |
+ ------+
Salida:
+---------+
|+-------+|
|| Hello ||
|+ ------+|
+---------+
3: Texto fuera del cuadro
Entrada:
+-------+
a| Hello |
+-------+
Salida:
+----------+
| +-------+|
|a| Hello ||
| +-------+|
+----------+