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

Partition Equal Subset Sum (Backtracking)

Write a function that uses backtracking to decide if a list of positive integers can be partitioned into two subsets with equal sum.

backtracking subset-sum partition
+25 pts 25m
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
Recursion & Backtracking medium

Combination Sum

Given a list of distinct positive integers and a target, return all unique combinations that sum to the target.

backtracking recursion combinations
+25 pts 30m
Recursion & Backtracking medium

Beautiful Arrangement Count

Count the number of permutations of 1..n such that for every index i, either i is divisible by the number at that position or the number is divisible by i.

recursion backtracking permutations
+30 pts 30m
Recursion & Backtracking medium

Rat in a Maze

Count the number of distinct paths a rat can take from top-left to bottom-right in a binary grid, moving down or right and avoiding walls.

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

Hamiltonian Cycle Backtrack

Implement a backtracking algorithm to find a Hamiltonian cycle in an undirected graph.

backtracking graph hamiltonian
+45 pts 40m
Two Pointers & Sliding Window hard

Minimum Window Subsequence

Given strings s and t, return the minimum window substring of s that contains t as a subsequence, or empty string if none exists.

sliding-window recursion dynamic-programming
+40 pts 35m
Stacks & Queues medium

Decode Nested String

Implement a function that decodes a string with nested encoding patterns.

stack string parsing
+25 pts 30m
Data Formats & Parsing medium

Flatten nested JSON

Write a function that flattens nested JSON objects into a flat dictionary with dot-separated keys, handling lists and empty objects.

json recursion dictionaries
+20 pts 25m

Showing 49–57 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.