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
Python Basics medium

Longest Substring with K Repeating Characters

Return the length of the longest substring of a given string in which every character appears at least K times.

strings sliding-window substring
+18 pts 20m
Python Basics medium

Basic Calculator

Implement a function that evaluates a simple arithmetic expression with +, -, *, / and parentheses.

calculator parsing math
+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

Parse key-value lines

Parse structured key-value lines into a dictionary with support for quoted values and escaped characters.

parsing strings dictionary
+20 pts 20m
Lists & Arrays medium

Maximum subarray (Kadane)

Find the contiguous subarray with the largest sum.

dp arrays kadane
+25 pts 20m
Lists & Arrays medium

Product except self

Return an array where output[i] is the product of all elements except nums[i], without using division.

arrays prefix-sum
+25 pts 20m
OOP & Classes medium

Reentrant Lock Manager

Implement a ReentrantLock class with acquire, release, locked, owner, and helper functions that test thread-safety with real threads.

threading locking reentrant
+20 pts 20m
OOP & Classes medium

Design Twitter Feed

Implement a Twitter class with postTweet, getNewsFeed, follow, and unfollow methods.

classes sorting timeline
+25 pts 30m
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
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
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

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

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
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
Error Handling & Exceptions medium

Resource Cleanup Manager

Implement a context manager that tracks and releases resources reliably, and can report cleanup actions.

context-managers exceptions cleanup
+20 pts 20m
Error Handling & Exceptions medium

Suppress Specific Exceptions

Implement a custom context manager that suppresses specified exception types within its block.

context-manager exceptions suppress
+20 pts 20m
Regular Expressions medium

Validate Email Regex

Implement a function that validates email addresses using regex with specific rules.

regex email validation
+20 pts 25m
Bit Manipulation medium

Bitwise AND of a Range

Given a range [a, b], return the bitwise AND of all integers in that inclusive range without iterating over all numbers.

bitwise range optimization
+20 pts 15m
Bit Manipulation medium

Divide using shifts

Implement division of two integers using only bit shifts and arithmetic, without using division or modulo operators.

integer division bit shifts overflow
+20 pts 20m
Dynamic Programming medium

House Robber Circular

Solve the House Robber problem with houses arranged in a circle.

dynamic-programming arrays circular
+25 pts 30m
Dynamic Programming medium

Unique Paths with Obstacles

Given a 2D grid with obstacles, count the unique paths from top-left to bottom-right moving only down or right.

dynamic-programming grid 2d-array
+25 pts 25m

Showing 1–24 of 72 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.