Você deve escrever um programa ou função que use uma sequência de colchetes e produza se essa sequência é ou não totalmente correspondida. Seu programa deve imprimir um valor verdadeiro ou falso , e as E / S podem estar em qualquer formato razoável .
Regras e definições:
Para o propósito deste desafio, um "suporte" é qualquer um desses caracteres:
()[]{}<>
.Um par de colchetes é considerado "correspondente" se os colchetes de abertura e fechamento estiverem na ordem correta e não tiverem caracteres dentro deles, como
() []{}
Ou se todos os subelementos dentro dele também corresponderem.
[()()()()] {<[]>} (()())
Os subelementos também podem ser aninhados com várias camadas de profundidade.
[(){<><>[()]}<>()] <[{((()))}]>
Uma cadeia é considerada "Totalmente compatível" se e somente se:
Cada caractere é um colchete,
Cada par de suportes possui o suporte correto de abertura e fechamento e na ordem correta, e
Cada suporte é correspondido.
Você pode assumir que a entrada conterá apenas ASCII imprimível .
Teste de E / S
Aqui estão algumas entradas que devem retornar um valor verdadeiro:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
E aqui estão algumas saídas que devem retornar um 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 costume, esse é um código de golfe, então as brechas padrão se aplicam e a resposta mais curta em bytes vence.
[}
uma partida? E se não, onde é excluído por essas regras?
Each pair of brackets has the correct opening and closing bracket and in the right order.