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
Data Structures & Algorithms medium

Delete Middle Node

Implement a function that deletes a given non-tail node from a singly linked list in O(1) time.

linked-list pointer in-place
+12 pts 15m
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
Data Structures & Algorithms medium

Design Skip List Lite

Implement a simplified skip list supporting insert, search, and delete with O(log n) average complexity.

skip-list linked-list search
+30 pts 30m
Data Structures & Algorithms medium

Delete duplicates sorted II

Given a sorted list, remove duplicates in place so each element appears at most twice, returning the new length.

arrays two-pointers in-place
+20 pts 20m
Data Structures & Algorithms medium

Arithmetic Slices Count

Given a list of integers, count how many contiguous subarrays of length at least 3 form an arithmetic sequence.

arrays arithmetic counting
+15 pts 20m
Data Structures & Algorithms medium

Accounts Merge

Given a list of accounts, merge those that share any email and return sorted accounts.

union-find graph sorting
+28 pts 30m
Data Structures & Algorithms medium

Strobogrammatic number II

Given a positive integer n, return all strobogrammatic numbers of length n in ascending order.

strings recursion number
+25 pts 20m
Advanced Python medium

Context manager timer

Implement a Timer context manager that records elapsed seconds.

context-manager time
1
+22 pts 20m
Advanced Python medium

Retry decorator

Implement @retry(times=3) that retries a function on exception.

decorators error-handling
+28 pts 25m
Advanced Python medium

2D Vector dataclass

Implement a Vector2D dataclass with +, -, scalar *, dot product, and magnitude.

dataclass OOP math
1
+20 pts 18m
Advanced Python medium

Multiprocessing Queue

Implement a function that uses a multiprocessing queue to compute factorials of a list of numbers in parallel.

multiprocessing queue parallel
+25 pts 25m
Advanced Python medium

TypeVar bounded generic

Learn to use TypeVar with bounds to write type-safe generic functions in Python.

generics typevar typing
+20 pts 15m
Advanced Python medium

Metaclass Registry

Implement a metaclass that automatically registers every subclass in a class-level registry.

metaclass registry oop
+25 pts 25m
Advanced Python medium

Context Variable Scope

Implement a context manager that temporarily changes a global variable and restores it afterwards, even if an exception occurs.

context-manager global-scope scope
+20 pts 20m
Advanced Python medium

Descriptor Property

Create a descriptor class that ensures attribute values are positive integers.

descriptors oop python-advanced
+20 pts 20m
Iterators & Generators medium

Prime Sieve Generator

Implement a generator function that yields prime numbers from 2 up to a specified limit, using an efficient sieve approach.

generators prime sieve
+20 pts 20m
Iterators & Generators medium

Cartesian Product Generator

Implement a generator function that yields the Cartesian product of multiple input iterables without precomputing all results.

generators cartesian product
+20 pts 25m
Decorators & Context Managers medium

Memoize with TTL

Implement a decorator that caches function results for a limited time, returning cached values within the TTL and recomputing after expiry.

decorators memoization caching
+20 pts 20m
Decorators & Context Managers medium

LRU Memoize

Implement an LRU memoization decorator that caches results for a fixed number of arguments.

decorators caching lru
+30 pts 25m
Decorators & Context Managers medium

Cached Property Manual

Implement a decorator that turns a method into a lazy cached attribute per instance.

decorator caching descriptor
+20 pts 25m
Decorators & Context Managers medium

Rate Limit Decorator

Implement a decorator that enforces a maximum number of calls per second for any function.

decorator time rate-limiting
+20 pts 20m
Decorators & Context Managers medium

Cache result decorator

Create a decorator that stores results of function calls keyed by positional arguments.

decorators memoization functools
+20 pts 20m
Decorators & Context Managers medium

Profile time decorator

Create a decorator that tracks how many times a function is called and its cumulative execution time.

decorators timing profiling
+20 pts 20m
Decorators & Context Managers medium

Temporary directory manager

Implement a context manager that creates a temporary directory and automatically removes it even on errors.

context-manager tempdir file-io
+20 pts 20m

Showing 73–96 of 323 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.