Basado en esta pregunta.
Dada una cadena, reemplace cada corchete ()[]{}<>con un corchete del tipo apropiado para que los corchetes coincidan, y los corchetes anidados se ciclan de la siguiente manera:
- Los más externos son
() - Directamente dentro de
()debe ser[] - Directamente dentro de
[]debe ser{} - Directamente dentro de
{}debe ser<> - Directamente dentro de
<>será()nuevamente (ciclos)
Todos los caracteres sin corchetes deben permanecer exactamente como están. Los corchetes abiertos solo pueden reemplazarse con corchetes abiertos de algún tipo, y los corchetes cerrados con corchetes cerrados.
La entrada siempre lo hará posible. Esto significa que sus corchetes coinciden correctamente si se ignora su tipo. Entonces, {ab<)c]es una entrada válida, pero ab)(cdo ab((cdno lo son.
Ejemplos:
2#jd {¤>. = 2#jd (¤).
abcdef = abcdef
(3×5+(4-1)) = (3×5+[4-1])
<<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}])
El uso de la transformación nativa de entrada de esta manera (sintaxis automática del lenguaje) no está permitido.
Como siempre: el código más corto gana.