Pilhas para Correspondência de Parênteses
Valide parênteses com uma pilha.
Pilhas para Correspondência de Parênteses é uma aula grátis de Coding Interview Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Coding Interview Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Coding Interview Prep inclui 4 aulas no total.
Último a entrar, primeiro a sair
Uma pilha é uma estrutura em que o último item colocado é o primeiro a ser removido, como uma pilha de pratos. 🍽️
Listas de Python são pilhas
Em Python, você não precisa de uma classe especial. Uma simples lista já funciona como uma pilha rápida e pronta para uso em competições.
stack = []Empilhe com append
Para colocar um item no topo da pilha, use append, que adiciona o valor ao final da lista em tempo O(1).
stack.append('(')
stack.append('[')Remova do topo com pop
Chamar pop sem índice remove e devolve o último item, aquele que foi colocado mais recentemente na pilha.
top = stack.pop() # removes '['Consulte sem remover
Para consultar o item do topo sem removê-lo, basta ler stack[-1]. Essa consulta é útil antes de decidir usar pop.
if stack:
top = stack[-1]Verifique sempre se está vazia
Usar pop em uma pilha vazia gera um erro. Proteja cada operação pop verificando primeiro if stack, para que sua solução nunca falhe.
A ideia de correspondência de delimitadores
Os delimitadores se aninham perfeitamente, o que pede uma pilha. Empilhe cada delimitador de abertura, e um delimitador de fechamento deve corresponder ao topo da pilha.
Associe o fechamento à abertura
Mantenha um pequeno dicionário que associe cada delimitador de fechamento ao delimitador de abertura esperado, para que as verificações permaneçam claras.
pairs = {')': '(', ']': '[', '}': '{'}Percorra e decida
Percorra a cadeia uma única vez. Empilhe os delimitadores de abertura e, ao encontrar um de fechamento, compare-o com o topo removido usando seu mapa de pares.
for c in s:
if c in pairs.values():
stack.append(c)Uma incompatibilidade significa inválido
Se o delimitador de abertura removido não corresponder, ou se a pilha estiver vazia quando você precisar dela, a cadeia será inválida imediatamente.
elif not stack or stack.pop() != pairs[c]:
return FalsePilha vazia ao final
Após a varredura, um delimitador de abertura restante significa que algo nunca foi fechado. A cadeia é válida somente quando a pilha finalmente está vazia.
return not stackVerificação rápida
Você está validando delimitadores com uma pilha. O que uma pilha não vazia ao final indica?
Recapitulação: pilhas controlam delimitadores
Você aprendeu que uma lista funciona como uma pilha: empilhe os delimitadores de abertura, use pop nos de fechamento, e uma pilha vazia ao final significa que estão balanceados. Muito bem! 🎉
Perguntas Frequentes
A aula “Pilhas para Correspondência de Parênteses” é grátis?
Sim — o texto completo de “Pilhas para Correspondência de Parênteses” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Coding Interview Prep, atualize para CoddyKit PRO. O curso de Coding Interview Prep inclui 4 aulas no total.
O que vou aprender em “Pilhas para Correspondência de Parênteses”?
Valide parênteses com uma pilha. Você pratica Coding Interview Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Coding Interview Prep?
Nenhuma experiência prévia é necessária. Coding Interview Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Pilhas para Correspondência de Parênteses”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Coding Interview Prep?
Sim. Cada aula de Coding Interview Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Pilhas para Correspondência de Parênteses
- Pilha Monotônica: Próximo Elemento Maior
- Filas e collections.deque
- Máximo em Janela Deslizante com Deque