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
Greedy Algorithms medium

Boats to Save People

Given a list of people weights and a boat's weight limit, return the minimum number of boats required.

greedy two-pointers sorting
+25 pts 25m
Greedy Algorithms medium

Minimum Number of Arrows to Burst Balloons

Given balloon intervals, find the minimum number of arrows to burst all balloons by merging overlaps.

greedy sorting intervals
+25 pts 25m
Greedy Algorithms medium

Queue Reconstruction by Height

Given shuffled pairs of (height, number_of_taller_people_in_front), reconstruct the original queue order.

greedy sorting insertion
+25 pts 25m
Greedy Algorithms medium

Non-overlapping Intervals

Given a list of intervals, return the minimum number of intervals to remove to make the rest non-overlapping.

greedy intervals sorting
+20 pts 20m
Greedy Algorithms medium

Max events attended

Given a list of events with start and end times, find the maximum number of non-overlapping events you can attend.

greedy interval-scheduling sorting
+20 pts 20m
Binary Search medium

Nth Magical Number

Given three integers n, a, b, return the nth positive integer that is divisible by either a or b.

binary-search math counting
+25 pts 25m
Binary Search medium

Minimum Limit of Balls in a Bag

Given an array of bag sizes and a number of allowed splits, find the minimum possible maximum bag size.

binary-search arrays optimization
+25 pts 25m
Two Pointers & Sliding Window medium

Character Replacement Window

Given a string and a number k, find the length of the longest substring that can be made uniform by replacing at most k characters.

sliding-window two-pointers strings
+30 pts 25m
Two Pointers & Sliding Window medium

Count Nice Subarrays

Given an array of integers, count the number of contiguous subarrays that contain exactly k odd numbers.

sliding-window two-pointers subarray
+25 pts 25m
Two Pointers & Sliding Window medium

Closest Three Sum

Given an array of integers and a target, return the sum of three numbers that is closest to the target.

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

Fruit into Baskets

Given an array of integers representing fruit types, return the maximum number of fruits you can collect in a contiguous subarray with at most two distinct types.

sliding-window two-pointers hash-map
+25 pts 25m
Two Pointers & Sliding Window medium

Binary Subarray with Sum

Given a binary list and a goal sum, count the number of subarrays that add up to that goal.

sliding-window two-pointers subarray
+20 pts 20m
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
Two Pointers & Sliding Window medium

Count Nice Subarrays

Count subarrays that contain exactly k odd numbers.

sliding-window two-pointers counting
+25 pts 30m
Stacks & Queues medium

Remove K Digits Stack

Remove k digits from a non-negative integer string to produce the smallest possible number using a stack-based approach.

stack string greedy
+25 pts 25m
Heaps & Priority Queues medium

Top K Frequent Elements

Given an integer array and a number k, return the k most frequent elements using a heap-based approach.

heap frequency counting
+25 pts 25m
Heaps & Priority Queues medium

Top K Frequent Elements

Given a list of integers and a number k, return the k most frequent elements in descending order of frequency, with ties broken by larger value.

heap frequency counter
+20 pts 25m
Heaps & Priority Queues medium

Task Scheduler Heap

Given a list of tasks and a cooldown, find the minimum number of CPU intervals needed to schedule all tasks without violating the cooldown.

heap queue greedy
+30 pts 25m
Heaps & Priority Queues medium

Meeting Rooms II with Heaps

Given a list of meeting intervals, compute the minimum number of rooms required using a heap-based approach.

heap intervals greedy
+25 pts 20m
Matrix & 2D Arrays medium

Number of Islands

Given a 2D grid of '1' (land) and '0' (water), count the number of islands surrounded by water.

matrix graph bfs
+25 pts 30m
Matrix & 2D Arrays medium

Number of Islands in a Matrix

Count the number of distinct islands (connected groups of 1s) in a 2D binary matrix.

matrix dfs bfs
+20 pts 20m
Matrix & 2D Arrays medium

Regions Cut by Slashes

Given a grid of slashes, count the number of connected regions formed by the slashes and the grid borders.

grid dfs union-find
+30 pts 30m
Datetime & Time Calculations medium

Julian Day Number Converter

Implement two functions to convert between Gregorian calendar dates and Julian Day Numbers using a standard formula.

datetime date-arithmetic algorithms
+20 pts 20m
Data Formats & Parsing medium

Extract JSON-like numbers

Parse a simplified JSON-like string without using the json module and sum all numbers found in it.

json parsing numbers
+14 pts 20m

Showing 49–72 of 72 challenges · medium

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.