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
Trees & Binary Trees easy

Symmetric Tree Check

Write a function that checks whether a binary tree is symmetric (a mirror of itself).

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

Same Tree Check

Write a function that checks whether two binary trees are identical in structure and node values.

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

Lowest Common Ancestor in a Binary Tree

Implement a function to find the lowest common ancestor (LCA) of two nodes in a binary tree.

binary-tree dfs recursion
+30 pts 30m
Trees & Binary Trees medium

Sum Root to Leaf Numbers

Given the root of a binary tree, compute the total sum of all root-to-leaf numbers.

binary-tree dfs recursion
+25 pts 25m
Trees & Binary Trees medium

Delete Node in BST

Implement a function that deletes a key from a binary search tree and returns the new root.

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

Insert into BST

Implement insertion into a Binary Search Tree while maintaining BST properties.

binary-search-tree recursion tree
+10 pts 15m
Trees & Binary Trees medium

Trim BST to range

Implement a function to trim a BST to only retain nodes with values in a given inclusive range.

bst recursion tree-pruning
+25 pts 25m
Trees & Binary Trees medium

Validate BST

Implement a function to determine if a binary tree is a valid Binary Search Tree.

bst recursion validation
+25 pts 25m
Trees & Binary Trees medium

Kth Smallest in BST

Implement a function that returns the k-th smallest value in a binary search tree.

bst inorder recursion
+25 pts 25m
Trees & Binary Trees easy

Range Sum BST

Return the sum of all node values in a BST that lie within a given inclusive range [low, high].

bst tree recursion
+10 pts 15m
Trees & Binary Trees medium

Count Complete Tree Nodes

Given a complete binary tree, return its node count faster than O(n) time.

binary-tree complete-tree tree-traversal
+25 pts 25m
Graphs & Graph Algorithms easy

Cycle Detection in a Directed Graph

Use DFS with a recursion stack to detect cycles in a directed graph.

graph dfs cycle
+10 pts 15m
Recursion & Backtracking easy

Wildcard Match (Simple)

Write a function that checks whether a string matches a pattern with '*' and '?' wildcards.

wildcard recursion string
+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 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

Generate Parentheses

Given n, generate all valid strings of n pairs of parentheses.

backtracking recursion parentheses
+25 pts 25m
Recursion & Backtracking medium

Letter Combinations of a Phone Number

Given a string of digits, return all possible letter combinations that the number could represent on a phone keypad.

recursion backtracking string
+25 pts 25m
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 medium

Subsets

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

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

Subsets II

Given a collection of integers that might contain duplicates, return all possible unique subsets.

subsets backtracking deduplication
+25 pts 30m
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

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
Recursion & Backtracking medium

Palindrome Partitioning

Given a string s, return all possible palindrome partitioning of s.

backtracking recursion palindrome
+25 pts 30m
Recursion & Backtracking hard

Partition to k subsets

Determine if an array of positive integers can be partitioned into k subsets of equal sum using backtracking.

backtracking recursion partition
+40 pts 35m

Showing 25–48 of 57 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.