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
Bit Manipulation easy

Missing Number XOR

Given a list of n distinct numbers from 0 to n with one missing, use XOR to find and return the missing number.

xor bitwise arrays
+10 pts 15m
Bit Manipulation easy

Subset XOR sum

Given a list of integers, compute the bitwise XOR of each non-empty subset and return the sum of those XOR totals.

xor bitwise subsets
+8 pts 10m
Dynamic Programming easy

House Robber

Given a list of house values, return the maximum sum you can rob without robbing two adjacent houses.

dynamic-programming arrays optimization
+10 pts 15m
Dynamic Programming easy

Triangle Minimum Path

Compute the minimum path sum from top to bottom of a triangle given as a list of lists.

dynamic-programming bottom-up arrays
+12 pts 20m
Trees & Binary Trees easy

Binary Search Tree Class

Build a BinarySearchTree class and a sequence runner that executes a list of operations.

binary-search-tree classes traversal
+10 pts 15m
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
Graphs & Graph Algorithms easy

Find center of star graph

Write a function that finds the center node of a star graph from its list of edges in O(1) time.

graph star-graph array
+10 pts 15m
Graphs & Graph Algorithms easy

Clique Detection

Given an undirected graph and a list of vertices, check if every pair of distinct vertices in the list is connected by an edge.

graphs cliques adjacency-matrix
+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
Recursion & Backtracking easy

Power set from set

Write a function to return the power set of a given list of distinct elements.

recursion subsets combinations
+8 pts 12m
Binary Search easy

Search Insert Position

Return the index where a target should be inserted into a sorted list to maintain order.

binary-search arrays searching
+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
Binary Search easy

Find Indices of Target in Sorted List

Given a sorted list and a target, return the indices of its first and last occurrence, or [-1, -1] if absent.

binary-search sorted range
+10 pts 10m
Two Pointers & Sliding Window easy

Best Time to Buy and Sell Stock

Given a list of daily stock prices, determine the maximum profit achievable by buying on one day and selling on a later day.

arrays sliding-window profit
+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
Stacks & Queues easy

Next Greater Element

Return a list where each position holds the next greater element to the right, or -1 if none exists.

stack arrays monotonic stack
+10 pts 15m
Linked Lists easy

Count nodes in a linked list

Return how many values appear in the list (one per node).

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Read the head node value

Return the first value or None when the list is empty.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Read the tail node value

Return the last value or None when the list is empty.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Reverse a linked list copy

Return a new list with node values in reverse order without mutating the input.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Concatenate two linked lists

Append the second list's nodes after the first and return a new list.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Value at index n

Return the value at zero-based index n or None if out of range.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Middle node index

Return the floor middle index for a non-empty list.

linked-list lists pointers
+10 pts 12m

Showing 145–168 of 186 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.