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
Graphs & Graph Algorithms easy

Find center of star graph

Write a function that finds the center node of a star graph from its list of edges in O(1) time.

graph star-graph array
+10 pts 15m
Graphs & Graph Algorithms easy

Keys and Rooms

A classic graph traversal challenge: check if all rooms are reachable from room 0 using keys found in visited rooms.

graph dfs bfs
+10 pts 20m
Graphs & Graph Algorithms hard

Swim in Rising Water

Find the minimum time needed to swim from the top-left to the bottom-right of a grid where water level rises and you can only move to cells with elevation ≤ current time.

graph minimax priority-queue
+30 pts 20m
Graphs & Graph Algorithms medium

Prim's Minimum Spanning Tree

Given a connected undirected weighted graph, compute the total weight of its minimum spanning tree using Prim's algorithm.

graphs mst prim
+30 pts 30m
Graphs & Graph Algorithms medium

Kruskal MST

Implement Kruskal's algorithm to compute the total weight of a minimum spanning tree in a connected undirected graph.

graphs minimum-spanning-tree union-find
+25 pts 30m
Graphs & Graph Algorithms medium

Topological Sort via DFS

Return a deterministic topological ordering of nodes in a directed acyclic graph using DFS, or an empty list if a cycle exists.

topological-sort dfs graph
+20 pts 25m
Graphs & Graph Algorithms medium

Strongly Connected Components (Kosaraju's Algorithm)

Implement a function to find strongly connected components in a directed graph using Kosaraju's algorithm.

graphs dfs kosaraju
+30 pts 30m
Graphs & Graph Algorithms easy

Clique Detection

Given an undirected graph and a list of vertices, check if every pair of distinct vertices in the list is connected by an edge.

graphs cliques adjacency-matrix
+10 pts 15m
Graphs & Graph Algorithms medium

Surrounded Regions

Given an M×N grid of 'X' and 'O', capture all regions of 'O' that are completely surrounded by 'X'.

graph bfs grid
+25 pts 30m
Graphs & Graph Algorithms medium

Course Schedule Ordering

Determine a valid sequence to complete all courses respecting prerequisite constraints.

graph topological-sort bfs
+30 pts 30m
Graphs & Graph Algorithms medium

Minimum Height Trees

Given an undirected tree, find all root nodes that minimize the height of the tree.

graphs bfs topological
+30 pts 30m
Graphs & Graph Algorithms medium

Open the Lock BFS

Implement a BFS solution to find the minimum number of turns needed to open a 4-wheel lock, avoiding a set of deadends.

bfs strings graph
+25 pts 30m
Graphs & Graph Algorithms medium

Minimum Genetic Mutation

Implement a function to compute the minimum number of single-character mutations needed to transform one gene string into another, using a given bank of valid mutations.

bfs graph string
+30 pts 30m
Graphs & Graph Algorithms medium

Possible bipartition

Given N people and a list of mutual dislikes, check if they can be divided into two groups with no dislike inside a group.

bipartite graph bfs
+25 pts 25m
Graphs & Graph Algorithms medium

Graph Coloring Backtrack

Given an adjacency list and a number of colors, decide if the graph can be colored so no adjacent vertices share a color.

backtracking graphs coloring
+30 pts 30m
Graphs & Graph Algorithms medium

Android unlock patterns

Count the number of valid Android unlock patterns of a given length using a 3x3 grid with adjacency constraints.

graphs dfs backtracking
+25 pts 30m
Graphs & Graph Algorithms medium

Floyd-Warshall: All-Pairs Shortest Paths

Implement the Floyd-Warshall algorithm to find all-pairs shortest path distances in a directed graph with possibly negative weights but no negative cycles.

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

Jump Game on Graph

Implement a function that determines if you can reach the last node of a directed graph by jumping from node 0 to node n-1 using edges.

graphs bfs reachability
+25 pts 30m
Graphs & Graph Algorithms medium

Most stones removed

Given stone coordinates on a grid, find the maximum number of stones that can be removed while every stone shares a row or column with another remaining stone.

graphs dfs union-find
+30 pts 30m
Recursion & Backtracking easy

Wildcard Match (Simple)

Write a function that checks whether a string matches a pattern with '*' and '?' wildcards.

wildcard recursion string
+10 pts 15m
Recursion & Backtracking easy

Permutation Generator

Write a function that returns all permutations of a list of distinct integers.

recursion backtracking permutations
+10 pts 15m
Recursion & Backtracking medium

Combination Generator

Write a recursive function that returns all combinations of length k from a list of distinct integers.

recursion backtracking combinations
+25 pts 25m
Recursion & Backtracking medium

Generate Parentheses

Given n, generate all valid strings of n pairs of parentheses.

backtracking recursion parentheses
+25 pts 25m
Recursion & Backtracking medium

Letter Combinations of a Phone Number

Given a string of digits, return all possible letter combinations that the number could represent on a phone keypad.

recursion backtracking string
+25 pts 25m

Showing 649–672 of 925 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.