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
Binary Search medium

Book Allocation: Minimize Maximum Pages

Implement a function that returns the minimized maximum pages when allocating a list of books to k students.

binary-search greedy arrays
+30 pts 30m
Two Pointers & Sliding Window easy

Longest Substring Without Repeating Characters

Implement a function that returns the length of the longest substring without repeating characters.

strings sliding-window two-pointers
+10 pts 15m
Two Pointers & Sliding Window easy

Squares of Sorted Array

Implement a function that returns a sorted list of squares for a given non-decreasing integer array.

two-pointers sorting array
+10 pts 15m
Two Pointers & Sliding Window medium

Boats to Save People – Two Pointer

Implement a function that returns the minimum number of boats needed to rescue everyone, given a weight limit and each boat carrying at most two people.

two-pointers sorting greedy
+25 pts 30m
Heaps & Priority Queues medium

Kth Largest Element in an Array (Heap Edition)

Implement a function that returns the kth largest element in an unsorted integer array using a heap.

heap priority-queue array
+20 pts 25m
Linked Lists hard

Join node values with arrows

Format string node values as 'a -> b -> c'; empty list returns ''.

linked-list lists pointers
+35 pts 30m
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 easy

Diagonal Traverse Matrix

Implement a function that returns all elements of a matrix in diagonal zigzag order.

matrix traversal array
+12 pts 20m
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 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
Datetime & Time Calculations easy

Days in month

Write a function that returns the number of days in a given month and year, correctly handling leap years.

datetime calendar leap-year
+8 pts 10m
Datetime & Time Calculations easy

Days Between Dates

Write a function that returns the number of days between two given dates.

datetime date-arithmetic calendar
+10 pts 15m
Datetime & Time Calculations easy

Weekday from date

Write a function that returns the full English weekday name for a date string.

datetime date weekday
+10 pts 10m
Datetime & Time Calculations easy

Leap Years in Range

Write a function that returns a list of all leap years between two given years, inclusive.

leap-year range datetime
+7 pts 10m
Datetime & Time Calculations easy

Unix timestamp to datetime

Write a function that returns a UTC datetime string from a Unix timestamp.

datetime unix-timestamp utc
+10 pts 15m
Datetime & Time Calculations easy

Next Weekday Finder

Write a function that returns the next weekday date after a given date.

datetime date weekday
+10 pts 12m
Datetime & Time Calculations easy

Schedule conflict check

Write a function that takes a list of time intervals and returns True if any two overlap.

datetime intervals overlap
+10 pts 15m
Datetime & Time Calculations easy

Month End Date

Implement a function that returns the last day of the month for a given year and month.

datetime calendar leap-year
+10 pts 15m
Datetime & Time Calculations medium

Easter Date Calculator

Implement a function that returns the date of Easter Sunday for a given year using the Gregorian computus algorithm.

datetime date easter
+20 pts 25m
Data Formats & Parsing easy

Parse email header

Write a function that parses a raw email header string and returns sender, recipient, and subject.

parsing strings email
+10 pts 12m
SQL & SQLite easy

Inner Join Two Tables

Write a function that inner joins two lists of dictionaries on a common key and returns the combined rows.

sql join dictionaries
+8 pts 12m
SQL & SQLite easy

Create Table Schema

Write a function that creates a SQLite table with a given name and columns, and returns the resulting schema as a list of column definitions.

sqlite schema table
+8 pts 10m
SQL & SQLite easy

Second highest salary

Given an employees table, write a SQL query that returns the second highest distinct salary, or NULL if it doesn't exist.

sql sqlite query
1
+8 pts 10m

Showing 121–144 of 150 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.