Max of a variable-length list
Implement a function that returns the maximum value from a list of numbers without using max().
Max of three numbers
Implement a function that returns the maximum of three numbers using comparisons.
Range of values
Calculate the range (max minus min) of a list of numbers. Empty list returns 0.
Longest Word Finder
Write a function that extracts alphabetic words from a string and returns the longest one, with ties broken by earliest position.
Maximum subarray (Kadane)
Find the contiguous subarray with the largest sum.
Sliding window maximum
Return the maximum of each window of size k as it slides across an array.
Running Maximum
Implement a function that returns a list where each element is the largest value seen so far.
Average excluding min and max
Return the average of a list after discarding the lowest and highest elements, handling edge cases.
Find Second Largest
Find the second largest unique number in a list, or None if it doesn't exist.
Partition Array
Implement a function that finds a contiguous partition of a list into k groups, minimizing the maximum sum of the groups.
LRU cache decorator
Implement @lru_cache(maxsize=N) for unary functions using OrderedDict.
Rate Limit Decorator
Implement a decorator that enforces a maximum number of calls per second for any function.
Kadane Variant: Maximum Product Subarray
Implement max_product_subarray(nums) that returns the maximum product of any contiguous subarray.
Max Profit from Selling Twice
Compute the maximum profit that can be achieved by completing at most two buy-sell transactions on a given price array.
House Robber
Given a list of house values, return the maximum sum you can rob without robbing two adjacent houses.
House Robber Circular
Solve the House Robber problem with houses arranged in a circle.
Maximal square
Given a 2D binary matrix of 0s and 1s, compute the area of the largest square containing only 1s.
0/1 Knapsack
Implement the classic 0/1 Knapsack dynamic programming solution to maximize value under a weight capacity.
Unbounded Knapsack
Given item weights and values with unlimited copies, find the maximum total value that fits in a knapsack capacity.
Integer Break Product
Given a positive integer n, break it into at least two positive integers that sum to n and maximize their product.
Buy Sell Stock with Cooldown (DP)
Given daily stock prices, compute the maximum profit you can achieve if you must wait one day after selling before buying again.
Maximum depth of tree
Implement max_depth(root) to return the maximum depth of a binary tree.
Minimum Cut
Given an undirected graph in adjacency-list form, return the size of the minimum edge cut that disconnects the graph.
Stock Buy Sell Once
Given daily stock prices, compute the maximum profit you can achieve from buying once and selling once later.
Ternary Search
Implement ternary search to locate the maximum of a discrete unimodal function.
Container With Most Water
Given an array of heights, find the maximum area between two vertical lines that can hold water.
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.
Max Area of Island
Given a 2D grid of 0s and 1s, find the maximum area of a connected group of 1s.
Showing 28 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
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- 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.