Se le dará una cadena (posiblemente vacía) que contiene corchetes ( [{()}]
) y cualquier otro carácter ( A
- Z
, a
- z
, 0
- 9
, puntuación). Debe verificar si cumple con las siguientes reglas:
- Los caracteres sin corchetes se ignoran.
- Cada soporte abierto
[{(
tiene un soporte de cierre)}]
. Entonces[](
no está permitido. - Los corchetes están anidados correctamente.
[(])
No se permite. - Los corchetes no pueden contener corchetes dentro de ellos. Los corchetes simples no pueden contener corchetes ni corchetes dentro de ellos. Entonces
[({})]
,[{[]}]
y({})
no están permitidos. Los corchetes se pueden anidar con corchetes similares, por lo que[[{((()))}{{(())}}]()]{()}
está permitido.
La salida es un único valor verdadero / falso según su elección.
El código más corto gana.
Casos de prueba
b[[a{(/)}(())+={{}-}],]
-> Válido
([h][e][l][l][o])
-> Inválido
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()}
-> Válido
hi
-> Válido