Practice Arena

Python Coding Challenges

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

819 challenges 506 easy 280 medium 33 hard
Python Basics easy

Insert New Row

Implement a function that inserts a new row into a 2D list at a specified index.

lists insert rows
+5 pts 5m
Python Basics easy

Broadcast Add Scalar

Add a scalar to every number in a 2D list and return a new 2D list without modifying the original.

nested-loops addition lists
+10 pts 15m
Python Basics easy

Fancy Index Select

Given a 2D matrix and a list of row indices, select those rows in order and return them as a new 2D list.

indexing lists matrix
+10 pts 10m
Python Basics easy

Reshape array dimensions

Implement a function that reshapes a 1D list into a 2D list with given dimensions.

reshape matrix lists
+8 pts 10m
Lists & Arrays easy

Concatenate Horizontally

Write a function that horizontally concatenates two 2D lists into a new 2D list.

lists concatenation matrix
+8 pts 10m
OOP & Classes easy

Dataclass with slots

Implement a slotted frozen dataclass representing a 2D point with total ordering.

dataclass slots immutability
+10 pts 15m
Data Structures & Algorithms medium

Flood Fill Algorithm

Implement flood fill on a 2D grid using BFS/DFS.

grid bfs dfs
+20 pts 25m
Advanced Python medium

2D Vector dataclass

Implement a Vector2D dataclass with +, -, scalar *, dot product, and magnitude.

dataclass OOP math
1
+20 pts 18m
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 medium

Maximal square

Given a 2D binary matrix of 0s and 1s, compute the area of the largest square containing only 1s.

dynamic-programming matrix maximal-square
+30 pts 30m
Dynamic Programming hard

Cherry Pickup Maximum

Given a grid with cherries, find the maximum cherries you can collect using two paths from top-left to bottom-right.

dynamic-programming 2d-grid grid-walk
+40 pts 35m
Dynamic Programming medium

Maximal square matrix

Given a 2D binary matrix of 0s and 1s, find the side length of the largest square containing only 1s.

dynamic-programming matrix maximum-square
+25 pts 30m
Dynamic Programming medium

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.

dynamic-programming strings dp
+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
Recursion & Backtracking medium

Word Search Backtrack

Determine if a given word exists in a 2D board by tracing adjacent cells without reusing any cell.

backtracking matrix dfs
+25 pts 25m
Binary Search medium

Search 2D Matrix

Given a sorted 2D matrix with sorted rows and first element of each row greater than last of previous, find target efficiently.

binary search 2d matrix searching
+20 pts 25m
Matrix & 2D Arrays medium

Spiral Matrix Order

Given a 2D matrix, return all elements in clockwise spiral order starting from the top-left.

matrix spiral traversal
+25 pts 25m
Matrix & 2D Arrays medium

Number of Islands

Given a 2D grid of '1' (land) and '0' (water), count the number of islands surrounded by water.

matrix graph bfs
+25 pts 30m
Matrix & 2D Arrays medium

Max Area of Island

Given a 2D grid of 0s and 1s, find the maximum area of a connected group of 1s.

grid dfs connected-components
+20 pts 25m
Matrix & 2D Arrays medium

Spiral Matrix Traversal

Implement a function that returns the elements of a 2D matrix in clockwise spiral order.

matrix traversal simulation
+20 pts 25m
Matrix & 2D Arrays medium

Search a 2D Matrix II

Implement an efficient search for a target in a matrix where each row and each column is sorted in ascending order.

matrix binary-search search
+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
Matrix & 2D Arrays easy

Toeplitz Matrix Check

Write a function is_toeplitz(matrix) that checks if a 2D list is a Toeplitz matrix, where all elements on the same diagonal from top-left to bottom-right are identical.

matrix array diagonal
+10 pts 15m
Matrix & 2D Arrays medium

Shift 2D Grid

Implement a function to shift a 2D grid right by k positions, flattening the grid and wrapping elements.

grid list modulo
+20 pts 20m
Matrix & 2D Arrays medium

Matrix Block Sum

Given a 2D matrix and a block size, compute the sum of each block centered at every cell.

matrix prefix-sum 2d-array
+25 pts 25m
Matrix & 2D Arrays easy

Transpose Matrix In-Place

Implement a function that transposes a square matrix in-place and returns the transposed matrix.

matrix transpose in-place
+8 pts 12m
Matrix & 2D Arrays medium

Word Search Matrix

Given a 2D board and a word, determine if the word can be formed by sequentially adjacent cells (horizontally or vertically), without reusing cells.

matrix dfs strings
+25 pts 30m
Matrix & 2D Arrays easy

Matrix Multiply 2D

Write a function that multiplies two 2D matrices (lists of lists) and returns the product matrix.

matrix multiplication nested-loops
+8 pts 10m
Matrix & 2D Arrays easy

Transpose 2D Array

Implement a function that returns the transpose of a rectangular 2D list.

matrix transpose nested-lists
+10 pts 10m

Showing 29 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.