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

Fibonacci(n)

Return the nth Fibonacci number efficiently.

recursion dp memoization
+15 pts 15m
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
Strings & Text medium

Find all anagrams

Return all starting indices where any anagram of a given word appears as a substring.

anagrams strings sliding-window
+20 pts 20m
Strings & Text medium

Substring Anagrams

Return all start indices in a string where a substring of length k is an anagram of a pattern string.

strings sliding-window hash-map
+20 pts 25m
Strings & Text medium

Longest Palindrome Substring

Given a string s, return the longest substring that reads the same forwards and backwards.

strings palindrome substring
+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
Lists & Arrays medium

Merge intervals

Merge all overlapping intervals and return a sorted result.

intervals sort
+30 pts 26m
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
Lists & Arrays medium

Product of All Except Zeros Handling

Given a list of integers, return a list where each element is the product of all other elements, handling zeros correctly.

product arrays zero-handling
+20 pts 25m
Lists & Arrays medium

Partition around a pivot value

Implement an in-place partition of a list around a given pivot value, returning the boundary index.

lists partition two-pointer
+20 pts 20m
Lists & Arrays medium

Count Smaller Numbers

Given an integer list, return for each position how many later elements are smaller than it.

arrays counting merge-sort
+20 pts 20m
Functions & Closures medium

Function composition

Return a function that applies f after g: compose(f, g)(x) == f(g(x)).

functional closures higher-order
+20 pts 18m
Data Structures & Algorithms medium

Quicksort

Implement quicksort and return a sorted list.

sorting recursion divide-and-conquer
+25 pts 25m
Data Structures & Algorithms medium

BFS level-order traversal

Return the level-order traversal of a binary tree as a list of lists.

BFS trees queues
+28 pts 25m
Data Structures & Algorithms medium

Graph DFS

Return all nodes reachable from a start node via DFS.

graph DFS recursion
+28 pts 25m
Data Structures & Algorithms medium

Find Peak Element

Implement a function that returns the index of any peak element in an integer array.

arrays search binary-search
+20 pts 25m
Data Structures & Algorithms medium

Merge Sort

Implement merge_sort(numbers) that returns a sorted copy of the input list using the merge sort algorithm.

sorting recursion divide-and-conquer
+30 pts 30m
Data Structures & Algorithms medium

Path Sum II All Paths

Return all root-to-leaf paths where the sum of node values equals a target.

binary-tree dfs backtracking
+20 pts 25m
Data Structures & Algorithms medium

Redundant Connection

Given a list of edges forming a tree plus one extra edge, return the edge that appears last in the input and creates a cycle.

graphs union-find cycle-detection
+25 pts 25m
Data Structures & Algorithms medium

K Closest Elements

Implement a function to return the k closest elements to a target in a sorted array.

arrays binary-search sorting
+25 pts 25m
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

AST Visitor Lite

Implement a depth-first traversal of a simplified AST and return identifier names in order.

trees traversal ast
+20 pts 20m
Data Structures & Algorithms medium

Merge time intervals

Given a list of time intervals, merge all overlapping intervals and return the merged intervals.

intervals sorting arrays
+20 pts 20m
Data Structures & Algorithms medium

Top N per group

Implement top_n_per_group that returns the top N scores for each group from a list of (group, score) pairs.

sorting grouping dictionaries
+25 pts 25m

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