Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
Strings & Text medium

Simplify Path

Implement a function that simplifies a Unix-style absolute file path to its canonical form.

strings stack parsing
+20 pts 25m
Strings & Text medium

Minimum Remove Valid Parentheses

Given a string with parentheses and letters, remove the fewest parentheses to make it valid.

strings stack validation
+20 pts 25m
Strings & Text medium

Change directory manager

Implement a function that processes `cd` commands and returns the resulting absolute path.

string parsing paths
+20 pts 20m
Data Structures & Algorithms medium

Next greater element II

For each element in a circular array, find the next greater element (NGE) to its right, wrapping around.

arrays stack monotonic stack
+20 pts 20m
Data Structures & Algorithms medium

Basic Calculator II

Evaluate a basic arithmetic expression with +, -, *, / following operator precedence.

string stack arithmetic
+25 pts 30m
Data Structures & Algorithms medium

Online Stock Span

Implement StockSpanner.next(price) that returns the maximum number of consecutive days (including today) with price <= current price.

stack monotonic-stack stock-span
+20 pts 25m
Data Structures & Algorithms medium

Design Browser History

Implement a BrowserHistory class that supports visit, back, and forward navigation with step counts.

browser-history stack design
+25 pts 20m
Stacks & Queues medium

Evaluate Reverse Polish Notation

Evaluate an arithmetic expression written in reverse Polish notation using a stack.

stacks arithmetic parsing
+25 pts 25m
Stacks & Queues medium

Daily Temperatures

Given a list of daily temperatures, return for each day how many days until a warmer temperature appears.

stacks arrays monotonic-stack
+25 pts 25m
Stacks & Queues medium

Decode String Stack

Decode a compressed string with repeated substrings like '3[a2[c]]' to 'accaccacc' using a stack-based approach.

stacks string parsing
+25 pts 20m
Stacks & Queues medium

Remove K Digits Stack

Remove k digits from a non-negative integer string to produce the smallest possible number using a stack-based approach.

stack string greedy
+25 pts 25m
Stacks & Queues medium

Score of Parentheses

Given a balanced parentheses string, compute its score where () is 1 and concatenation sums, nesting multiplies by 2.

stack string parsing
+20 pts 20m
Stacks & Queues medium

Validate Stack Sequences

Given two sequences of distinct integers, verify whether the second sequence is a valid pop order for a stack given the first sequence as push order.

stack simulation sequences
+20 pts 20m
Stacks & Queues medium

Buildings with ocean view

Given building heights, return sorted indices of buildings that have a clear view of the ocean to their right.

stack monotonic-stack arrays
+20 pts 20m
Stacks & Queues medium

Sum of Subarray Minimums

Given an integer array, sum the minimum of all contiguous subarrays modulo 10^9+7.

stack array monotonic-stack
+30 pts 30m
Stacks & Queues medium

Asteroid Collision

Simulate asteroid collisions with a stack and return the remaining asteroids in original order.

stack simulation arrays
+20 pts 25m
Stacks & Queues medium

Decode Nested String

Implement a function that decodes a string with nested encoding patterns.

stack string parsing
+25 pts 30m

Showing 1–17 of 17 challenges · medium

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

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. 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.