Debe escribir un programa o función que tome una cadena de corchetes y genere si esa cadena coincide o no completamente. Su programa debe imprimir un valor verdadero o falso , y IO puede estar en cualquier formato razonable .
Reglas y definiciones:
A los efectos de este reto, un "soporte" es cualquiera de los siguientes caracteres:
()[]{}<>
.Un par de paréntesis se considera "coincidente" si los paréntesis de apertura y cierre están en el orden correcto y no tienen caracteres dentro de ellos, como
() []{}
O si cada subelemento dentro de él también coincide.
[()()()()] {<[]>} (()())
Los subelementos también se pueden anidar en varias capas de profundidad.
[(){<><>[()]}<>()] <[{((()))}]>
Una cadena se considera "Totalmente coincidente" si y solo si:
Cada personaje es un paréntesis,
Cada par de soportes tiene el soporte de apertura y cierre correcto y en el orden correcto, y
Cada soporte se corresponde.
Puede suponer que la entrada solo contendrá ASCII imprimible .
Prueba IO
Aquí hay algunas entradas que deberían devolver un valor verdadero:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
Y aquí hay algunas salidas que deberían devolver un valor falso:
( Has no closing ')'
}{ Wrong order
(<)> Each pair contains only half of a matched element
(()()foobar) Contains invalid characters
[({}<>)> The last bracket should be ']' instead of '>'
(((())) Has 4 opening brackets, but only 3 closing brackets.
Como de costumbre, este es el código de golf, por lo que se aplican las lagunas estándar y gana la respuesta más corta en bytes.
[}
un partido? Y si no, ¿dónde está excluido por estas reglas?
Each pair of brackets has the correct opening and closing bracket and in the right order.