Valid Parentheses
Uma sequência de colchetes está balanceada quando cada colchete de abertura é fechado por um colchete do mesmo tipo, e os pares ficam aninhados uns nos outros em vez de se sobreporem. Existem três tipos: parênteses (), colchetes [] e chaves {}.
Por exemplo, {[()()]} está balanceada: cada par é fechado dentro do par que o envolve. Mas {(}) não está: a chave se fecha enquanto o parêntese aberto depois dela ainda está esperando. Uma sequência como (( também não está balanceada, porque nada fecha os dois símbolos de abertura.
Escreva uma função chamada isValid que recebe uma string s composta apenas pelos caracteres (, ), [, ], { e }, e retorna true quando seus colchetes estão balanceados e false caso contrário.
Balanceados significa que cada colchete de fechamento corresponde ao colchete de abertura mais recente que ainda está aberto, que ambos são do mesmo tipo e que nenhum colchete de abertura permanece aberto no final.
Restrições: 1 ≤ s.length ≤ 10^4.
Função
- arg1string
- Retornaboolean
Exemplos
- Entrada
- arg1 = "[]{}()"
- Saída
- true
- Entrada
- arg1 = "{[()()]}"
- Saída
- true
- Entrada
- arg1 = "{(})"
- Saída
- false
+13 testes ocultos ao enviar
Dicas
Abra uma de cada vez. Cada uma revela um pouco mais.
Leia a string da esquerda para a direita. Quando chega um colchete de fechamento, qual colchete de abertura ele pode fechar?
Ele só pode fechar o colchete de abertura que foi aberto mais recentemente e ainda está aberto. O último que foi aberto é o primeiro a ser fechado: essa é exatamente a ordem que uma pilha mantém.
Empilhe cada colchete de abertura. Ao encontrar um colchete de fechamento, a pilha não deve estar vazia e seu topo deve ser do mesmo tipo; remova-o e continue. Quando a string terminar, ela estará balanceada somente se a pilha estiver vazia.
Em breve, uma explicação completa deste problema.
Problemas parecidos
Problemas que usam as mesmas ideias. Resolver dois ou três é o que fixa um padrão.
Python
def isValid(s):
# Escreva o código aquiCaso 1
Caso 2
Caso 3
Entrada
arg1 = "[]{}()"Esperado
true