0Pricing
Competitive Programming Academy · Lesson

Stacks for Matching Brackets

Validate parentheses with a stack.

Stacks for Matching Brackets is a free Competitive Programming Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Competitive Programming Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Last In, First Out

A stack is a pile where the last item you add is the first one you remove, just like stacking plates. 🍽️

Python Lists Are Stacks

In Python you do not need a special class. A plain list already works as a fast, ready-made stack for contests.

stack = []

Push with append

To add an item on top of the stack you call append, which puts the value at the end of the list in O(1) time.

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

Pop from the Top

Calling pop with no index removes and returns the last item, the one most recently pushed onto the stack.

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

Peek Without Removing

To look at the top item without taking it off, just read stack[-1]. This peek is handy before deciding to pop.

if stack:
    top = stack[-1]

Always Check for Empty

Popping an empty stack raises an error. Guard every pop by first checking if stack so your solution never crashes.

The Bracket Matching Idea

Brackets nest perfectly, which screams stack. Push every opening bracket, and a closing one must match the top of the stack.

Map Closing to Opening

Keep a small dictionary that pairs each closing bracket with the opening one it expects, so checks stay clean.

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

Scan and Decide

Walk the string once. Push openers, and on a closer compare it with the popped top using your pairs map.

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

Mismatch Means Invalid

If the popped opener does not match, or the stack is empty when you need it, the string is invalid right away.

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

Empty Stack at the End

After scanning, a leftover opener means something never closed. The string is valid only when the stack is finally empty.

return not stack

Quick Check

You are validating brackets with a stack. What does a non-empty stack at the very end tell you?

Recap: Stacks Tame Brackets

You learned that a list works as a stack: push openers, pop on closers, and an empty stack at the end means balanced. Nicely done! 🎉

Frequently asked questions

Is the “Stacks for Matching Brackets” lesson free?

Yes — the full text of “Stacks for Matching Brackets” is free to read here on the web, and the Competitive Programming Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Competitive Programming Academy course, upgrade to CoddyKit PRO.

What will I learn in “Stacks for Matching Brackets”?

Validate parentheses with a stack. You practise Competitive Programming Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Competitive Programming Academy?

No prior experience is required. Competitive Programming Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Stacks for Matching Brackets” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Competitive Programming Academy lesson?

Yes. Every Competitive Programming Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Stacks for Matching Brackets
  2. Monotonic Stack: Next Greater Element
  3. Queues and collections.deque
  4. Sliding Window Maximum with Deque
← Back to Competitive Programming Academy