Nestingsdiepte van haakjes
Bepaal de maximale diepte van tekst met alleen ronde, vierkante en gekrulde haakjes.
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 peakControleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Accepteer lege tekst met diepte nul, maar weiger gekruiste paren, ongepaarde haakjes en alle andere tekens, inclusief spaties.
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 peakMaak validatieregels begrijpelijk voor de volgende aanroeper
BracketMast brengt AI-ondersteunde ontwikkeling naar een Windows-omgeving waarin een projectmap en het bijbehorende programmeergesprek verbonden blijven. Gebruik deze wanneer een validatiewijziging meer precisie vraagt dan een verzoek om ongeldige invoer af te handelen. Beschrijf de geaccepteerde taal, de foutvoorwaarden en wat aanroepers moeten ontvangen. Vraag de assistent vervolgens de bestaande implementatie te inspecteren voordat deze een correctie voorstelt.
Een taak rond bracket_depth.py kan draaien om de vraag of invoer uitsluitend ondersteunde haakjes bevat, of hun volgorde geldig is en wat een lege waarde betekent. Vraag om een patch en voorbeelden die deze beslissingen zichtbaar maken. Houd de functie en de aanroepende code in beeld: een wijziging van het geaccepteerde alfabet kan gedrag veranderen, ook als gebalanceerde invoer blijft werken. Zo draait validatiebeoordeling om het toepassingscontract in plaats van één geslaagde demonstratie.
Voer na beoordeling van het voorstel uw projectcontroles uit voor geaccepteerde tekenreeksen, voortijdige sluithaakjes en onafgemaakte invoer. Gebruik fouten om het verzoek te verfijnen en behoud het afgesproken foutgedrag. BracketMast maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-endpoints, waar nodig met toegangsgegevens. U kunt een als onbeperkt omschreven model kiezen als uw endpoint dat aanbiedt; providervoorwaarden blijven gelden en contextlimieten en tools hangen af van het model en de server. Uw tests bepalen of de resulterende code het contract volgt.
Bepalen wat een validator moet accepteren
Moeten niet-ondersteunde tekens worden genegeerd of afgewezen?
Kies bewust op basis van het contract met de aanroeper. Een validator voor tekenreeksen met uitsluitend haakjes kan ze afwijzen, terwijl een broncodeparser andere regels nodig heeft. Geef de assistent dat onderscheid mee voordat u een wijziging accepteert die onverwachte tekens stilzwijgend overslaat.
Hoe moet een lege waarde worden behandeld?
Specificeer of deze binnen uw toepassing geldig is, ontbreekt of een fout vormt. Controleer vervolgens zowel het functieresultaat als de interpretatie door de aanroepende code. Een conventie voor lege invoer mag niet afhangen van toevallig lusgedrag.
Wat onderscheidt een foutmelding van een foutcontract?
Het contract omvat welke voorwaarde faalt, hoe de fout wordt weergegeven en wat de aanroeper daarna doet. Beoordeel deze beslissingen samen; alleen de formulering verbeteren kan inconsistente retourwaarden of een niet-afgehandelde uitzondering in de toepassing laten bestaan.
Kan ik een validator hergebruiken nadat ik de geaccepteerde invoer heb gewijzigd?
Inspecteer eerst de overige aanroepers. Een ruimer geaccepteerd alfabet of een ander fouttype kan code beïnvloeden die op het oude gedrag vertrouwde. Maak compatibiliteit expliciet en voeg controles voor die afhankelijkheden toe voordat u de gewijzigde hulpfunctie hergebruikt.
BracketMast · Bijgewerkt 2026-10-25