Soportes normales ( ()
, []
, <>
y {}
) son agradables y sin ambigüedades, sin embargo alguien pensó que sería una buena idea de utilizar caracteres no soporte como soportes. Estos personajes |
y "
son ambiguos. Por ejemplo hace
""""
corresponden a las
(())
o
()()
Es imposible de decir.
Las cosas comienzan a ponerse interesantes cuando mezclas tipos de paréntesis ambiguos, por ejemplo
"|""||""|"
Podría ser cualquiera de los siguientes
([(([]))]),([()[]()]),([()][()])
Tarea
Su tarea es tomar una cadena hecha de caracteres ambiguos y generar todas las cadenas equilibradas posibles que el autor podría haber pensado.
Más concretamente que todas las cadenas de salida equilibradas que se pueden hacer en sustitución |
, ya sea con [
o ]
y "
, ya sea con (
o )
. No debe generar ninguna cadena equilibrada dos veces.
IO
Como entrada, debe tomar una cadena que consta de |
y "
. Si desea seleccionar dos caracteres distintos además de |
y "
servir como reemplazos, puede hacerlo. Debe generar un contenedor de cadenas equilibradas. Usted puede optar por sustituir []
y ()
en la salida con otras dos pares de soportes ( ()
, []
, <>
o {}
) que desee. Su formato de salida debe ser coherente en todas las ejecuciones.
Puntuación
Este es el código de golf, por lo que las respuestas se puntuarán en bytes con menos bytes mejor.
Casos de prueba
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]