Practice Arena

Python Coding Challenges

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

467 challenges 330 easy 120 medium 17 hard
Python Basics easy

Pathlib Operations: File Path Basics

Practice using pathlib to manipulate file paths and extract components.

pathlib file-paths strings
+8 pts 10m
Strings & Text easy

Stack Trace Sanitizer

Implement a function that rewrites traceback file paths to basenames only.

strings regex parsing
+8 pts 12m
Strings & Text easy

Extract file extensions

Implement a function that extracts the extension from a filename according to standard rules.

strings parsing file-paths
+8 pts 10m
Dicts & Sets easy

Nested get with dotted path

Implement a function that safely retrieves a value from a deeply nested dictionary using a dot-separated path, returning a default if any key is missing.

dicts nested parsing
+8 pts 10m
Data Structures & Algorithms easy

Union Find Class

Implement a UnionFind class with find and union operations supporting path compression and union by size.

union-find disjoint-set data-structures
+10 pts 15m
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

Reconstruct Itinerary

Given a list of airline tickets, reconstruct the itinerary in order using each ticket exactly once, choosing the lexicographically smallest path when multiple options exist.

graph backtracking dfs
+30 pts 25m
Data Structures & Algorithms medium

Shortest Path in Binary Matrix

Implement BFS to find the shortest path length from (0,0) to (n-1,n-1) in an n x n binary matrix, moving through 0 cells in 8 directions.

bfs grid shortest-path
+30 pts 30m
Dynamic Programming easy

Unique Paths in a Grid

Count the number of unique paths from the top-left corner to the bottom-right corner of a grid, moving only right and down.

dynamic-programming grid counting
+15 pts 20m
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
Dynamic Programming easy

Triangle Minimum Path

Compute the minimum path sum from top to bottom of a triangle given as a list of lists.

dynamic-programming bottom-up arrays
+12 pts 20m
Trees & Binary Trees medium

Sum Root to Leaf Numbers

Given the root of a binary tree, compute the total sum of all root-to-leaf numbers.

binary-tree dfs recursion
+25 pts 25m
Graphs & Graph Algorithms hard

Dijkstra Shortest Path

Implement Dijkstra's algorithm on a weighted graph to return distances from a source to every node.

dijkstra graph heap
+35 pts 30m
Graphs & Graph Algorithms medium

Bellman-Ford Algorithm

Implement the Bellman-Ford algorithm to compute shortest distances from a source in a directed weighted graph with up to 100 vertices and negative edges.

shortest-path negative-edges graph
+30 pts 30m
Graphs & Graph Algorithms medium

A* Pathfinding Heuristic

Implement A* search on a 2D grid to find the shortest path length between two cells.

search heuristic shortest-path
+25 pts 30m
Graphs & Graph Algorithms medium

Hamiltonian Path Check

Implement a function that checks whether an undirected graph has a Hamiltonian path using DFS and backtracking.

graph dfs backtracking
+30 pts 30m
Graphs & Graph Algorithms medium

All Paths from Source to Target

Given a directed acyclic graph, return all paths from node 0 to the last node.

graph dfs backtracking
+25 pts 25m
Graphs & Graph Algorithms medium

Network Delay Time

Given a directed weighted graph and a starting node, find the minimum time for a signal to reach all nodes, or -1 if unreachable.

dijkstra shortest-path graph
+25 pts 30m
Graphs & Graph Algorithms medium

Cheapest Flights Within K Stops

Implement a function to compute the cheapest flight price from source to destination with at most K stops in a directed weighted graph.

graphs shortest-path dp
+30 pts 30m

Showing 19 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

  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.