Hloubka vnoření závorek
Najdi největší hloubku textu tvořeného pouze kulatými, hranatými a složenými závorkami.
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 peakPřed použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
Projekt
Přijmi prázdný text s hloubkou nula, ale odmítni křížené páry, nespárované závorky a všechny ostatní znaky včetně mezer.
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 peakZpřehledněte validační pravidla pro další volající kód
BracketMast přináší vývoj s pomocí AI do prostředí Windows, kde složka projektu zůstává propojena s konverzací o jeho kódu. Použijte jej, když změna validace vyžaduje větší přesnost než pouhý požadavek na ošetření chybných vstupů. Popište přijímaný jazyk, chybové podmínky a to, co má volající kód obdržet, a pak požádejte asistenta o kontrolu stávající implementace před návrhem opravy.
Úkol týkající se bracket_depth.py se může zaměřit na to, zda vstup obsahuje pouze podporované závorky, zda mají platné pořadí a co znamená prázdná hodnota. Požádejte o úpravu a příklady, které tato rozhodnutí ukážou. Sledujte funkci i kód, který ji volá: změna přijímané abecedy může změnit chování, i když vyvážené vstupy nadále fungují. Kontrola validace se tak týká smluveného chování aplikace, nikoli jediné úspěšné ukázky.
Po kontrole návrhu spusťte projektové kontroly přijímaných řetězců, předčasně uzavřených závorek a nedokončeného vstupu. Pomocí selhání zpřesněte požadavek a zachovejte dohodnuté chování při chybách. BracketMast se připojuje k podporovaným koncovým bodům kompatibilním s OpenAI nebo ke koncovým bodům Anthropic, s přihlašovacími údaji tam, kde jsou nutné. Pokud váš koncový bod nabízí model označený jako neomezený, můžete jej vybrat; podmínky poskytovatele stále platí a limity kontextu i nástroje závisí na modelu a serveru. Vaše testy ověřují, zda výsledný kód dodržuje smluvené chování.
Rozhodování o tom, co má validátor přijímat
Mají se nepodporované znaky ignorovat, nebo odmítat?
Rozhodněte vědomě podle smluveného chování volajícího kódu. Validátor řetězců obsahujících pouze závorky je může odmítat, zatímco analyzátor zdrojového kódu potřebuje jiná pravidla. Vysvětlete tento rozdíl asistentovi před přijetím změny, která nečekané znaky tiše přeskakuje.
Jak se má zpracovat prázdná hodnota?
Určete, zda je v aplikaci platná, chybějící, nebo chybná. Potom ověřte výsledek funkce i jeho interpretaci volajícím kódem. Pravidlo pro prázdný vstup by nemělo vzniknout náhodným chováním smyčky.
Jaký je rozdíl mezi chybovou zprávou a smluveným chováním při chybě?
Smluvené chování zahrnuje podmínku selhání, způsob jeho vyjádření i následnou reakci volajícího kódu. Posuzujte tato rozhodnutí společně; pouhé zlepšení formulace může v aplikaci ponechat nekonzistentní návratové hodnoty nebo neošetřenou výjimku.
Mohu validátor znovu použít po změně přijímaného vstupu?
Nejprve prověřte ostatní místa, která jej volají. Širší přijímaná abeceda nebo jiný typ chyby mohou ovlivnit kód spoléhající na původní chování. Před opětovným použitím upravené pomocné funkce výslovně stanovte kompatibilitu a přidejte kontroly těchto závislostí.
BracketMast · Aktualizováno 2026-10-25