Todo programador sabe que los corchetes []{}()<>
son realmente divertidos. Para exacerbar esta diversión, los grupos de brackets entrelazados se pueden transformar en diagramas lindos y difusos.
Digamos que tiene una cadena que contiene corchetes equilibrados, como [{][<(]})>(())
. El primer paso es rotar la cuerda 45 grados en el sentido de las agujas del reloj. (En Mathematica, esto casi se puede hacer con Rotate[ur_string,-pi/4]
). Aquí está el resultado del primer paso:
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Luego agregue un espacio diagonal entre cada personaje.
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Luego, comience con el corchete más a la izquierda y dibuje un cuadrado entre este y su compañero en el crimen.
+---+
| |
| { |
| |
+---+
[
<
(
]
}
)
>
(
(
)
)
Repita este proceso con cada par de paréntesis, sobrescribiendo los caracteres anteriores con +
s si es necesario.
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| [ |
| |
| < |
| |
| ( |
| |
| ] |
| |
+-----------+
)
>
(
(
)
)
Continúa hasta que hayas hecho todo bonito y cuadrado.
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| +-----+ |
| | | |
| | +---+-+---+
| | | | | |
| | | +-+-+-+ |
| | | | | | | |
| +-+-+-+ | | |
| | | | | |
+-----+-+---+ | |
| | | |
| +-----+ |
| |
+---------+
+-----+
| |
| +-+ |
| | | |
| +-+ |
| |
+-----+
Entrada
La entrada será una sola línea de corchetes balanceados y ningún otro carácter, con cada corchete siendo uno de ellos []{}()<>
. Cada tipo de paréntesis se equilibra individualmente, aunque pueden superponerse diferentes tipos (esto es lo que hace que los cuadrados se vean interesantes). Una nueva línea final es opcional.
Salida
La salida será el patrón cuadrado entrelazado generado a partir de la cadena de paréntesis. Los espacios finales y la nueva línea final son opcionales, pero no debe haber espacios en blanco iniciales.
Gol
Este es el código de golf, gana la menor cantidad de bytes.
[[]]
¿podemos generar dos cuadrados superpuestos o tenemos que generar un cuadrado dentro del otro?