0Pricing
Competitive Programming Academy · Lekcja

Stosy do dopasowywania nawiasów

Weryfikowanie nawiasów za pomocą stosu

Stosy do dopasowywania nawiasów to bezpłatna lekcja Competitive Programming Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Competitive Programming Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.

Ostatni wchodzi, pierwszy wychodzi

Stos to struktura, w której ostatni dodany element jest pierwszym usuwanym, podobnie jak w stosie talerzy. 🍽️

Listy w Pythonie są stosami

W Pythonie nie trzeba używać specjalnej klasy. Zwykła lista już działa jako szybki, gotowy stos przydatny w konkursach programistycznych.

stack = []

Dodawanie za pomocą append

Aby dodać element na wierzch stosu, wywołaj append, które umieszcza wartość na końcu listy w czasie O(1).

stack.append('(')
stack.append('[')

Zdejmowanie ze szczytu

Wywołanie pop bez indeksu usuwa i zwraca ostatni element, czyli ten, który został ostatnio dodany na stos.

top = stack.pop()  # removes '['

Podgląd bez usuwania

Aby zobaczyć element na szczycie bez zdejmowania go ze stosu, wystarczy odczytać stack[-1]. Taki podgląd jest przydatny przed podjęciem decyzji o wykonaniu pop.

if stack:
    top = stack[-1]

Zawsze sprawdzaj, czy stos jest pusty

Wykonanie pop na pustym stosie powoduje błąd. Przed każdym pop należy sprawdzić if stack, aby rozwiązanie nigdy nie uległo awarii.

Idea dopasowywania nawiasów

Nawiasy zagnieżdżają się idealnie, więc aż proszą się o użycie stosu. Odkładaj każdy nawias otwierający, a zamykający musi pasować do elementu na szczycie stosu.

Mapowanie zamykających na otwierające

Utwórz mały słownik, który przypisuje każdemu nawiasowi zamykającemu oczekiwany nawias otwierający, aby sprawdzanie pozostało przejrzyste.

pairs = {')': '(', ']': '[', '}': '{'}

Skanowanie i podejmowanie decyzji

Przejdź po napisie jeden raz. Odkładaj nawiasy otwierające, a przy zamykającym porównuj go ze zdjętym elementem ze szczytu za pomocą mapy pairs.

for c in s:
    if c in pairs.values():
        stack.append(c)

Niezgodność oznacza niepoprawność

Jeśli zdjęty nawias otwierający nie pasuje albo stos jest pusty, gdy jest potrzebny, napis od razu jest niepoprawny.

    elif not stack or stack.pop() != pairs[c]:
        return False

Pusty stos na końcu

Jeśli po skanowaniu pozostał nawias otwierający, oznacza to, że czegoś nie zamknięto. Napis jest poprawny tylko wtedy, gdy stos ostatecznie jest pusty.

return not stack

Szybkie sprawdzenie

Sprawdzają Państwo poprawność nawiasów za pomocą stosu. Co oznacza niepusty stos na samym końcu?

Podsumowanie: stosy ujarzmiają nawiasy

Nauczyli się Państwo, że lista działa jak stos: należy odkładać nawiasy otwierające, zdejmować je przy zamykających, a pusty stos na końcu oznacza poprawne zbilansowanie. Świetna praca! 🎉

Często zadawane pytania

Czy lekcja „Stosy do dopasowywania nawiasów” jest bezpłatna?

Tak — pełny tekst „Stosy do dopasowywania nawiasów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Competitive Programming Academy, przejdź na CoddyKit PRO. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Stosy do dopasowywania nawiasów”?

Weryfikowanie nawiasów za pomocą stosu Ćwiczysz Competitive Programming Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Competitive Programming Academy?

Nie wymagamy żadnego doświadczenia. Competitive Programming Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Stosy do dopasowywania nawiasów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Competitive Programming Academy?

Tak. Każda lekcja Competitive Programming Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Stosy do dopasowywania nawiasów
  2. Stos monotoniczny: następny większy element
  3. Kolejki i collections.deque
  4. Maksimum w przesuwanym oknie za pomocą deque
← Powrót do Competitive Programming Academy