BBracketMast
Ambiente di sviluppo con IA

Profondità delle parentesi annidate

Trova la profondità massima di un testo composto solo da parentesi tonde, quadre e graffe.

● ● ●BracketMast●
Flussi di lavoro · Profondità delle parentesi annidate ×
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
✳Profondità delle parentesi annidate
✓ ModificheControlla prima di applicare ↗
Illustrazione dell’ambiente
  1. Controlla prima di applicare

    Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

  2. Modelli

    Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.

  3. Progetto

    Accetta il testo vuoto con profondità zero, ma rifiuta coppie incrociate, parentesi spaiate e ogni altro carattere, spazi inclusi.

Flussi di lavoro

Profondità delle parentesi annidate

Flussi di lavoro ↗
Flussi di lavoro
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 di sviluppo con IA

Rendi le regole di validazione comprensibili a chi chiamerà il codice

BracketMast porta lo sviluppo assistito dall’IA in un ambiente Windows che mantiene collegati una cartella di progetto e la relativa conversazione sul codice. Usalo quando una modifica alla validazione richiede più precisione di una richiesta di gestire input errati. Descrivi il linguaggio accettato, le condizioni di errore e ciò che il chiamante deve ricevere, poi chiedi all’assistente di esaminare l’implementazione esistente prima di proporre una correzione.

Un’attività su bracket_depth.py potrebbe riguardare l’uso esclusivo di parentesi supportate, la validità del loro ordine e il significato di un valore vuoto. Chiedi una modifica ed esempi che rendano visibili queste decisioni. Tieni presenti la funzione e i suoi chiamanti: cambiare l’alfabeto accettato può alterare il comportamento anche se gli input bilanciati continuano a funzionare. La revisione riguarda così il contratto dell’applicazione, non una singola dimostrazione riuscita.

Dopo aver esaminato la proposta, esegui le verifiche del progetto su stringhe accettate, parentesi di chiusura premature e input incompleti. Usa gli errori per affinare la richiesta e conserva il comportamento concordato in caso di errore. BracketMast si collega a endpoint supportati compatibili con OpenAI o di Anthropic, con credenziali quando richieste. Puoi selezionare un modello descritto come senza restrizioni se l’endpoint lo offre; si applicano comunque le condizioni del fornitore e limiti di contesto e strumenti dipendono da modello e server. I tuoi test stabiliscono se il codice risultante rispetta il contratto.

Decidere cosa deve accettare un validatore

I caratteri non supportati vanno ignorati o rifiutati?

Scegli consapevolmente in base al contratto con il chiamante. Un validatore di stringhe composte solo da parentesi può rifiutarli, mentre un parser di sorgenti richiede regole diverse. Spiega questa distinzione all’assistente prima di accettare una modifica che salti silenziosamente caratteri inattesi.

Come deve comportarsi un valore vuoto?

Specifica se nell’applicazione è valido, mancante o un errore. Poi controlla sia il risultato della funzione sia l’interpretazione del chiamante. La convenzione per gli input vuoti non deve dipendere da un comportamento accidentale del ciclo.

Cosa distingue un messaggio di errore da un contratto di errore?

Il contratto comprende quale condizione fallisce, come viene rappresentato l’errore e cosa fa il chiamante dopo. Esamina insieme queste decisioni; migliorare solo il testo può lasciare valori restituiti incoerenti o un’eccezione non gestita nell’applicazione.

Posso riutilizzare un validatore dopo averne modificato gli input accettati?

Esamina prima gli altri chiamanti. Un alfabeto accettato più ampio o un tipo di errore diverso può influire sul codice che dipendeva dal vecchio comportamento. Esplicita la compatibilità e aggiungi verifiche per queste dipendenze prima di riutilizzare la funzione modificata.

Scarica per Windows ↗

BracketMast · Aggiornato 2026-10-25