Skip to content

Practice

Practice problems

24 problems, each graded against hidden test cases — not just the examples you can see. Write your solution, run it against the samples, then submit it and find out whether it really works.

12 easy9 medium3 hard8 debugging labsSolve in Python or JavaScript · graded in your browser

What these are for

These are the problems that come up in technical interviews and, more usefully, the ones that teach you to reason about what your code costs. Each states its constraints and a complexity target up front, so you know what you are aiming for rather than guessing whether a working answer is a good one.

The debugging labs work the other way round: you are handed a program that runs but produces the wrong answer, plus the bug report. Most of a working developer's day looks more like that than like writing from a blank editor, and the same hidden tests decide when you have actually fixed it.

They are a big step up from the beginner exercises. If a problem statement reads as a wall of words, that is a sign to do the exercises and the lessons first, then come back.

The problems

Difficulty
Topic
Language

24 problems

Data structures and algorithms (16)

Debugging labs (8)

Practise one language, start to finish

Each language with an exercise path also has a practice hub: its exercises, graded problems, lessons, cheat sheet and playground on one page.

Questions about the practice problems

What does 'hidden test cases' actually mean here?
Each problem is graded against tests you can see (the samples) and tests you cannot (the hidden ones), so a solution that only fits the samples fails. Because the site has no server, 'hidden' means not shown on the page and fetched only when you press Submit — a determined person can find them in the browser's network tab. They exist to make the feedback honest, not to stop cheating.
Which language can I solve the problems in?
Whichever the problem lists, and most are Python-only today. A handful of the debugging-lab problems also accept JavaScript, and each problem page shows a language picker above the editor when more than one is offered. The problem statements are language-independent, so you can always solve one in any language on your own computer even when in-page grading does not yet run it.
Are these the exact questions companies ask in interviews?
No, and no site can honestly claim that. These are classic problem shapes — pairs that sum to a target, balanced brackets, binary search — chosen because of what they teach about data structures and complexity, which is what interviews test.

The ideas behind the problems

Every term a problem leans on — hash table, two pointers, time complexity — is defined in plain English with a small example in the programming glossary. Some problems accept more than one language: each problem page says which, and the picker sits above the editor. Anything you want to try outside a problem belongs in a playground.