BBracketMast
Środowisko programowania z AI

Głębokość zagnieżdżenia nawiasów

Wyznacz maksymalną głębokość tekstu złożonego wyłącznie z nawiasów okrągłych, kwadratowych i klamrowych.

● ● ●BracketMast●
Sposoby pracy · Głębokość zagnieżdżenia nawiasów ×
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
✳Głębokość zagnieżdżenia nawiasów
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
  1. Sprawdź przed zastosowaniem

    Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.

  2. Modele

    Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.

  3. Projekt

    Przyjmij pusty tekst z głębokością zero, ale odrzuć skrzyżowane pary, niedopasowane nawiasy i wszystkie inne znaki, także spacje.

Sposoby pracy

Głębokość zagnieżdżenia nawiasów

Sposoby pracy ↗
Sposoby pracy
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
Środowisko programowania z AI

Niech reguły walidacji będą jasne dla kolejnego wywołującego

BracketMast udostępnia programowanie wspomagane AI w środowisku Windows, w którym folder projektu pozostaje powiązany z rozmową o kodzie. Użyj go, gdy zmiana walidacji wymaga większej precyzji niż polecenie obsługi błędnych danych. Opisz akceptowany język, warunki błędów i to, co powinien otrzymać kod wywołujący, a następnie poproś asystenta o analizę istniejącej implementacji przed zaproponowaniem poprawki.

Zadanie dotyczące bracket_depth.py może skupiać się na tym, czy dane zawierają wyłącznie obsługiwane nawiasy, czy ich kolejność jest prawidłowa i co oznacza pusta wartość. Poproś o poprawkę i przykłady ujawniające te decyzje. Uwzględnij funkcję i jej wywołania: zmiana akceptowanego alfabetu może zmienić zachowanie, nawet jeśli zrównoważone nawiasy nadal działają. Dzięki temu przegląd walidacji dotyczy kontraktu aplikacji, a nie pojedynczej udanej demonstracji.

Po przeglądzie propozycji uruchom kontrole projektu dla akceptowanych ciągów, przedwczesnych nawiasów zamykających i niedokończonych danych. Wykorzystaj błędy do doprecyzowania prośby i zachowaj uzgodnioną obsługę błędów. BracketMast łączy się z obsługiwanymi punktami końcowymi zgodnymi z OpenAI lub Anthropic, z uwierzytelnieniem, gdy jest wymagane. Możesz wybrać model określany jako nieograniczony, jeśli punkt końcowy go oferuje; nadal obowiązują warunki dostawcy, a limity kontekstu i narzędzia zależą od modelu i serwera. To testy ustalają, czy wynikowy kod spełnia kontrakt.

Ustalanie danych akceptowanych przez walidator

Czy nieobsługiwane znaki ignorować, czy odrzucać?

Zdecyduj świadomie na podstawie kontraktu wywołania. Walidator ciągów złożonych wyłącznie z nawiasów może je odrzucać, a parser kodu potrzebuje innych reguł. Wyjaśnij asystentowi tę różnicę przed zaakceptowaniem zmiany, która po cichu pomija nieoczekiwane znaki.

Jak traktować pustą wartość?

Określ, czy w aplikacji jest poprawna, oznacza brak danych czy błąd. Sprawdź wynik funkcji i jego interpretację przez kod wywołujący. Konwencji pustych danych nie należy pozostawiać przypadkowemu zachowaniu pętli.

Czym komunikat błędu różni się od kontraktu błędu?

Kontrakt obejmuje warunek niepowodzenia, sposób jego reprezentacji i dalsze działanie kodu wywołującego. Rozpatruj te decyzje łącznie; sama poprawa tekstu może pozostawić niespójne wartości zwracane lub nieobsłużony wyjątek w aplikacji.

Czy można ponownie użyć walidatora po zmianie akceptowanych danych?

Najpierw przejrzyj pozostałe wywołania. Szerszy alfabet lub inny typ błędu może wpłynąć na kod zależny od wcześniejszego zachowania. Jawnie określ zgodność i dodaj kontrole tych zależności przed ponownym użyciem zmienionej funkcji pomocniczej.

Pobierz dla Windows ↗

BracketMast · Zaktualizowano 2026-10-25