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 easy

Climbing Stairs

Implement a function that returns the number of distinct ways to climb n stairs using steps of 1 or 2.

fibonacci dp counting
+10 pts 15m
Trees & Binary Trees easy

Binary Tree Inorder Traversal

Implement an inorder traversal function that returns node values in left-root-right order.

binary-tree traversal recursion
+10 pts 15m
Trees & Binary Trees easy

Preorder Traversal

Implement a function that returns the preorder traversal values of a binary tree.

binary-tree traversal recursion
+10 pts 10m
Trees & Binary Trees easy

Postorder Traversal

Implement a function that returns the postorder traversal of a binary tree as a list of node values.

binary-tree traversal recursion
+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 easy

Permutations

Write a function that returns every permutation of the elements in the input list.

recursion backtracking permutations
+10 pts 15m
Binary Search easy

Upper Bound Binary Search

Write a function that returns the index of the first element greater than a target in a sorted list.

binary-search arrays searching
+8 pts 12m
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
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
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

Showing 97–120 of 127 challenges · easy

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.