Stack Trace Sanitizer
Implement a function that rewrites traceback file paths to basenames only.
Simplify Path
Implement a function that simplifies a Unix-style absolute file path to its canonical form.
Basic Calculator III
Implement a recursive descent parser to evaluate a fully parenthesized arithmetic expression with +, -, *, / and parentheses.
Minimum Remove Valid Parentheses
Given a string with parentheses and letters, remove the fewest parentheses to make it valid.
Change directory manager
Implement a function that processes `cd` commands and returns the resulting absolute path.
Crawler Log Folder
Given a list of folder navigation operations, compute the minimum steps required to return to the main folder.
Stack class
Implement a Stack class with push, pop, peek, is_empty, and size.
Valid parentheses
Return True if brackets in the string close in the correct order.
Previous Smaller Element
Find the nearest previous index with a smaller value for every element in an array.
Next greater element II
For each element in a circular array, find the next greater element (NGE) to its right, wrapping around.
Largest Rectangle in Histogram
Given an array of bar heights, compute the largest rectangle that can be formed by consecutive bars.
Basic Calculator II
Evaluate a basic arithmetic expression with +, -, *, / following operator precedence.
Online Stock Span
Implement StockSpanner.next(price) that returns the maximum number of consecutive days (including today) with price <= current price.
Design Browser History
Implement a BrowserHistory class that supports visit, back, and forward navigation with step counts.
Largest Area Histogram Matrix
Given a binary matrix, compute the largest rectangle area consisting entirely of 1s.
Cycle Detection in a Directed Graph
Use DFS with a recursion stack to detect cycles in a directed graph.
Remove K Digits to Form the Smallest Number
Given a non-negative integer as a string, remove exactly k digits to form the smallest possible integer without leading zeros.
Balanced brackets in string
Check if a string of brackets is properly balanced using a stack-based approach.
Next Greater Element
Return a list where each position holds the next greater element to the right, or -1 if none exists.
Max Stack Design
Implement a MaxStack class with push, pop, top, and get_max operations.
Evaluate Reverse Polish Notation
Evaluate an arithmetic expression written in reverse Polish notation using a stack.
Daily Temperatures
Given a list of daily temperatures, return for each day how many days until a warmer temperature appears.
Decode String Stack
Decode a compressed string with repeated substrings like '3[a2[c]]' to 'accaccacc' using a stack-based approach.
Remove K Digits Stack
Remove k digits from a non-negative integer string to produce the smallest possible number using a stack-based approach.
Showing 1–24 of 30 challenges
Guide: free Python coding challenges
Practice Python by solving problems
PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.
How to use the arena
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- Run tests, fix failures, then try a related quiz or tutorial lesson
Challenges vs tutorials and quizzes
Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.