Derangement count
Implement a function to count derangements of n items using the classic recurrence.
Shortest Common Supersequence
Given two strings, return any shortest supersequence that contains both as subsequences.
Interleaving string
Given three strings s1, s2, and s3, check if s3 is formed by interleaving s1 and s2 while preserving the order of each input string.
Count subsets with sum
Given a list of integers and a target sum, count how many subsets of the list sum to the target.
Matrix Chain Multiplication
Given a list of matrix dimensions, compute the minimum multiplication cost using dynamic programming.
Target sum assignments
Given a list of integers and a target, count how many ways to assign + or - to each number so the total equals the target.
Subset Sum Exists
Given a list of positive integers and a target sum, return whether some subset adds up exactly to the target.
Tiling dominoes count
Given a 2 x n board, count the distinct tilings using 2 x 1 dominoes.
Delete and Earn
Given an array of integers, find the maximum points you can earn by repeatedly deleting a number and all its adjacent values.
Split Array Largest Sum
Minimize the largest sum among k contiguous subarrays using dynamic programming.
Maximal rectangle in matrix
Given a matrix of 0s and 1s, compute the area of the largest rectangle consisting only of 1s.
Minimum Path Sum Matrix
Implement a function that computes the minimum path sum from the top-left to the bottom-right of a grid moving only right or down.
Dungeon Game Minimum Health
Compute the minimum initial health needed to reach the bottom-right corner of a dungeon grid without health dropping to zero or below.
Minimum Depth of Tree
Given a binary tree, compute the minimum depth from the root to the nearest leaf node.
Validate BST
Implement a function to determine if a binary tree is a valid Binary Search Tree.
Minimum Cut
Given an undirected graph in adjacency-list form, return the size of the minimum edge cut that disconnects the graph.
Graph Coloring
Given an undirected graph, determine if it can be colored with two colors such that adjacent vertices have different colors.
Graph Valid Tree
Determine if n nodes and an edge list form a valid tree (connected and acyclic).
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.
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.
Prim's Minimum Spanning Tree
Given a connected undirected weighted graph, compute the total weight of its minimum spanning tree using Prim's algorithm.
Kruskal MST
Implement Kruskal's algorithm to compute the total weight of a minimum spanning tree in a connected undirected graph.
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.
Course Schedule Ordering
Determine a valid sequence to complete all courses respecting prerequisite constraints.
Showing 73–96 of 148 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
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- 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.