BBracketMast
Ambiente de programação com IA

Profundidade de delimitadores aninhados

Encontre a profundidade máxima de um texto formado apenas por parênteses, colchetes e chaves.

● ● ●BracketMast●
Fluxos de trabalho · Profundidade de delimitadores aninhados ×
def bracket_depth(text):
    if type(text) is not str:
        raise ValueError("bracket.type")
    stack, peak = [], 0
    pairs = {')': '(', ']': '[', '}': '{'}
    for char in text:
        if char in "([{":
            stack.append(char)
            peak = max(peak, len(stack))
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                raise ValueError("bracket.order")
        else:
            raise ValueError("bracket.alphabet")
    if stack:
        raise ValueError("bracket.unclosed")
    return peak
✳Profundidade de delimitadores aninhados
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
  1. Revise antes de aplicar

    Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

  2. Modelos

    Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

  3. Projeto

    Aceite o texto vazio com profundidade zero, mas rejeite pares cruzados, símbolos sem par e qualquer outro caractere, inclusive espaços.

Fluxos de trabalho

Profundidade de delimitadores aninhados

Fluxos de trabalho ↗
Fluxos de trabalho
def bracket_depth(text):
    if type(text) is not str:
        raise ValueError("bracket.type")
    stack, peak = [], 0
    pairs = {')': '(', ']': '[', '}': '{'}
    for char in text:
        if char in "([{":
            stack.append(char)
            peak = max(peak, len(stack))
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                raise ValueError("bracket.order")
        else:
            raise ValueError("bracket.alphabet")
    if stack:
        raise ValueError("bracket.unclosed")
    return peak
Ambiente de programação com IA

Torne as regras de validação compreensíveis para o próximo chamador

BracketMast leva o desenvolvimento assistido por IA a um ambiente Windows em que a pasta do projeto e sua conversa de programação permanecem conectadas. Use-o quando uma alteração de validação exigir mais precisão do que pedir para tratar entradas inválidas. Descreva a linguagem aceita, as condições de falha e o que os chamadores devem receber; depois peça ao assistente que inspecione a implementação existente antes de propor uma correção.

Uma tarefa envolvendo bracket_depth.py pode examinar se uma entrada contém apenas delimitadores suportados, se a ordem deles é válida e o que significa um valor vazio. Peça uma alteração e exemplos que evidenciem essas decisões. Mantenha a função e seus chamadores em vista: mudar o alfabeto aceito pode alterar o comportamento mesmo quando entradas balanceadas continuam funcionando. Assim, a revisão da validação trata do contrato da aplicação, e não de uma única demonstração bem-sucedida.

Após revisar a proposta, execute as verificações do projeto para strings aceitas, delimitadores de fechamento prematuros e entradas inacabadas. Use as falhas para refinar a solicitação e mantenha o comportamento de erro acordado. BracketMast se conecta a endpoints compatíveis com OpenAI ou da Anthropic que sejam suportados, com credenciais quando exigidas. Você pode selecionar um modelo descrito como sem restrições se o endpoint o oferecer; as condições do provedor continuam válidas, e os limites de contexto e as ferramentas dependem do modelo e do servidor. Seus testes estabelecem se o código resultante segue o contrato.

Decida o que um validador deve aceitar

Caracteres não suportados devem ser ignorados ou rejeitados?

Escolha deliberadamente com base no contrato do chamador. Um validador de strings compostas apenas por delimitadores pode rejeitá-los, enquanto um analisador de código-fonte exige outras regras. Informe essa distinção ao assistente antes de aceitar uma alteração que ignore silenciosamente caracteres inesperados.

Como um valor vazio deve se comportar?

Especifique se ele é válido, ausente ou um erro na aplicação. Depois confira tanto o resultado da função quanto a interpretação feita pelo chamador. A convenção para entradas vazias não deve depender de um comportamento incidental do laço.

O que distingue uma mensagem de erro de um contrato de erro?

O contrato inclui qual condição falha, como a falha é representada e o que o chamador faz em seguida. Revise essas decisões em conjunto; melhorar apenas a redação pode deixar retornos inconsistentes ou uma exceção não tratada na aplicação.

Posso reutilizar um validador depois de mudar suas entradas aceitas?

Inspecione primeiro os demais chamadores. Um alfabeto aceito mais amplo ou um tipo de erro diferente pode afetar código que dependia do comportamento antigo. Explicite a compatibilidade e acrescente verificações dessas dependências antes de reutilizar a função auxiliar alterada.

Baixar para Windows ↗

BracketMast · Atualizado 2026-10-25