Adâncimea parantezelor imbricate
Găsește adâncimea maximă a unui text format doar din paranteze rotunde, pătrate și acolade.
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 peakVerifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Proiect
Acceptă textul gol cu adâncime zero, dar respinge perechile încrucișate, parantezele nepereche și orice alt caracter, inclusiv spații.
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 peakFă regulile de validare clare pentru următorul apelant
BracketMast aduce dezvoltarea asistată de IA într-un spațiu Windows în care dosarul proiectului și conversația despre cod rămân conectate. Folosește-l când modificarea validării cere mai multă precizie decât o solicitare de tratare a intrărilor greșite. Descrie limbajul acceptat, condițiile de eroare și ce trebuie să primească apelanții, apoi cere asistentului să inspecteze implementarea existentă înainte să propună o corecție.
O sarcină care implică bracket_depth.py poate viza dacă intrarea conține numai paranteze acceptate, dacă ordinea lor este validă și ce înseamnă o valoare goală. Cere o modificare și exemple care scot în evidență aceste decizii. Urmărește funcția și apelanții ei: schimbarea alfabetului acceptat poate modifica comportamentul chiar dacă intrările echilibrate continuă să funcționeze. Astfel, revizuirea validării privește contractul aplicației, nu o singură demonstrație reușită.
După revizuirea propunerii, execută verificările proiectului pentru șiruri acceptate, paranteze de închidere premature și intrări neterminate. Folosește eșecurile pentru a rafina cererea și păstrează comportamentul convenit la erori. BracketMast se conectează la endpointuri acceptate compatibile cu OpenAI sau Anthropic, cu date de autentificare când sunt necesare. Poți alege un model descris ca fiind fără restricții dacă endpointul tău îl oferă; condițiile furnizorului se aplică în continuare, iar limitele de context și instrumentele depind de model și server. Testele tale stabilesc dacă rezultatul respectă contractul.
Decide ce trebuie să accepte un validator
Caracterele neacceptate trebuie ignorate sau respinse?
Alege deliberat, pe baza contractului apelantului. Un validator pentru șiruri formate exclusiv din paranteze le poate respinge, în timp ce un analizor de cod sursă necesită alte reguli. Explică asistentului această diferență înainte să accepți o modificare care omite în tăcere caractere neașteptate.
Cum trebuie tratată o valoare goală?
Specifică dacă este validă, lipsește sau reprezintă o eroare în aplicație. Apoi verifică atât rezultatul funcției, cât și interpretarea apelantului. Convenția pentru intrări goale nu trebuie lăsată la voia comportamentului accidental al unei bucle.
Ce deosebește un mesaj de eroare de un contract de eroare?
Contractul include condiția care eșuează, reprezentarea eșecului și acțiunea următoare a apelantului. Revizuiește aceste decizii împreună; simpla îmbunătățire a formulării poate lăsa valori returnate inconsecvente sau o excepție netratată în aplicație.
Pot reutiliza un validator după schimbarea intrărilor acceptate?
Inspectează mai întâi ceilalți apelanți. Un alfabet acceptat mai larg sau un alt tip de eroare poate afecta codul care se baza pe comportamentul vechi. Fă compatibilitatea explicită și adaugă verificări pentru acele dependențe înainte să reutilizezi funcția modificată.
BracketMast · Actualizat 2026-10-25