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
Dynamic Programming medium

Coin Change Ways

Count the number of distinct combinations of coins that sum to a target amount.

dynamic programming coins counting
+30 pts 25m
Dynamic Programming medium

Unique Paths in a Grid

Count distinct paths in an m x n grid moving only down or right.

dynamic-programming grid counting
+25 pts 25m
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

Permutations II

Return all distinct permutations of a list of integers that may include duplicates.

permutations backtracking deduplication
+25 pts 25m
Recursion & Backtracking medium

Subsets

Return all subsets (the power set) of a list of distinct integers.

recursion backtracking subsets
+20 pts 25m
Recursion & Backtracking medium

N-Queens Count

Count the number of distinct valid placements of n non-attacking queens on an n×n chessboard.

backtracking recursion n-queens
+25 pts 30m
Recursion & Backtracking medium

Letter Tile Possibilities

Given a string of letter tiles, count the number of distinct non-empty sequences that can be formed using any non-empty subset in any order.

backtracking counting strings
+25 pts 25m
Recursion & Backtracking medium

Combination Sum

Given a list of distinct positive integers and a target, return all unique combinations that sum to the target.

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

Rat in a Maze

Count the number of distinct paths a rat can take from top-left to bottom-right in a binary grid, moving down or right and avoiding walls.

backtracking recursion maze
+25 pts 30m
Binary Search medium

Find Minimum in Rotated Sorted Array

Implement a function that finds the minimum element in a rotated sorted array of distinct integers in O(log n) time.

binary-search arrays rotation
+25 pts 30m
Two Pointers & Sliding Window medium

Fruit into Baskets

Given an array of integers representing fruit types, return the maximum number of fruits you can collect in a contiguous subarray with at most two distinct types.

sliding-window two-pointers hash-map
+25 pts 25m
Two Pointers & Sliding Window medium

Longest Substring with At Most K Distinct Characters

Given a string and an integer k, find the length of the longest substring that contains at most k distinct characters.

sliding-window strings hash-map
+25 pts 20m
Stacks & Queues medium

Validate Stack Sequences

Given two sequences of distinct integers, verify whether the second sequence is a valid pop order for a stack given the first sequence as push order.

stack simulation sequences
+20 pts 20m
Matrix & 2D Arrays medium

Number of Islands in a Matrix

Count the number of distinct islands (connected groups of 1s) in a 2D binary matrix.

matrix dfs bfs
+20 pts 20m
SQL & SQLite medium

Nth Highest Salary

Write a Python function using SQLite to return the Nth highest distinct salary from an employee table.

sql sqlite aggregation
+20 pts 20m

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