Count down from n
Implement a function that returns a list from n down to 1.
Multiplication Table Row
Return the nth row of a multiplication table as a list of 1..n products.
Max of a variable-length list
Implement a function that returns the maximum value from a list of numbers without using max().
Last Occurrence of a Value
Implement a function that returns the last index of a given value in a list, or -1 if it's not present.
Cycle a List Once
Implement a function that rotates a list right by one position.
Boolean Mask Filter
Write a function that filters a list based on a boolean mask and returns the selected elements.
Replace negatives with zero
Implement a function that replaces all negative numbers in a list with zero.
Average of a list
Write a function that computes the average of a list of numbers, handling empty lists by returning 0.
Count Positives
Count the positive numbers in a list of integers.
Find Minimum Value
Write a function that returns the minimum integer from a given list.
Range of values
Calculate the range (max minus min) of a list of numbers. Empty list returns 0.
Print Pyramid Pattern
Implement a function that returns a centered asterisk pyramid as a list of strings.
Find Missing Number
Given a list of n distinct integers from 0..n with one missing, return the missing number.
Map, Filter, Reduce
Implement three functions using map, filter, and reduce to manipulate a list of integers.
Linear Search Implementation
Implement a linear search function that returns the index of the first occurrence of a target in a list, or -1 if not found.
Count Leading Zeros
Write a function that returns the number of leading zeros in a list of integers.
Find all indexes of a substring
Write a function that returns a list of all starting indexes where a substring appears in a string, including overlapping occurrences.
Safe Command Executor
Implement emulate_run that simulates running a command list and returns output and exit code.
Remove duplicates (sorted)
Return a sorted list with duplicates removed.
Running Product of Integers
Given a list of integers, return a new list where each element at index i is the product of all elements from index 0 to i.
Second Largest Unique Value
Return the second largest distinct integer from a list, or None if it doesn't exist.
Move Zeros to the End
Reorder a list in-place, pushing all zeros to the end while preserving the order of non-zero numbers.
Chunk a list into n-sized parts
Write a function that divides a list into sublists of at most n elements.
Rotate Left by k
Implement a function that rotates a list left by k positions.
Find Missing Number 1 to n
Given a list containing n-1 distinct integers from 1 to n, find the missing number without using extra space.
Interleave Two Lists
Write a function that interleaves two lists element by element, preserving order.
Keep only even indexes
Given a list, return a new list containing only the elements at even indices (0, 2, 4, ...).
Running Maximum
Implement a function that returns a list where each element is the largest value seen so far.
Difference of Consecutive Elements
Given a list of numbers, return a new list where each element is the difference between consecutive elements.
All Unique Values Keep Order
Remove duplicates from a list, keeping only the first occurrence of each value while preserving relative order.
Insert into a Sorted List
Implement a function that inserts a value into a sorted list at the correct position using binary search.
Average excluding min and max
Return the average of a list after discarding the lowest and highest elements, handling edge cases.
Zip lists into pairs
Write a function that takes two lists and returns a list of two-element sublists pairing elements by index up to the shortest length.
Longest Run of Equal Values
Compute the length of the longest run (consecutive block) of equal elements in a list.
Middle Element of an Odd-Length List
Implement a function that returns the middle element of an odd-length list.
Is Subset of Another List
Write a function that returns True if every element in a given list exists in another list, ignoring duplicates.
Unzip pairs into two lists
Write a function that takes a list of pairs and returns two separate lists: first elements and second elements.
Generate a Multiplication Table
Build a function that returns an n x n multiplication table as a list of lists.
Find Second Largest
Find the second largest unique number in a list, or None if it doesn't exist.
Move Zeros to End
Rearrange a list by moving all zeros to the end while preserving the relative order of non-zero elements.
Majority Element Finder
Implement a function that returns the majority element in a list, which appears more than half the time.
Intersection of Two Lists
Given two lists, return a sorted list of unique elements that appear in both lists.
Union of Two Lists
Implement a function that combines two lists and returns only unique elements.
Difference of Two Lists
Write a function that returns items in list a that are not in list b, preserving order and duplicates.
Chunk list into groups
Implement a function that splits a list into sublists of a given size.
Zip Two Lists
Write a function that pairs elements from two lists by index, stopping at the shorter list.
Rearrange Positives and Negatives
Write a function that rearranges a list in-place so all negative numbers come before non-negative numbers.
Wave sort array
Given a list of integers, reorder it into a wave pattern where elements alternate down-up, and return the new list.
Last occurrence index
Implement a function that returns the last index of a given value in a list, or -1 if the value is not present.
Counting Sort
Implement the counting sort algorithm to sort a list of non-negative integers in O(n + k) time.
List intersection
Return the sorted list of elements common to both lists.
Most frequent element
Return the element that appears most often in a list.
Are two lists the same multiset
Write a function that checks if two lists contain the same elements with the same multiplicities, ignoring order.
Group names by first letter
Given a list of names, return a dictionary mapping each first letter to all names starting with that letter in original order.
Keys Sorted by Value Descending
Given a dictionary mapping strings to integers, return a list of keys sorted by value descending, and when values tie, alphabetically ascending.
Anagram Dictionary Groups Lite
Group a list of words into anagrams using a dictionary keyed by sorted characters.
Union of Many Sets
Implement a function that takes any number of sets and returns a sorted list of their union.
Mode of a list via counting
Implement a function that returns the mode of a list, resolving ties by the element that appears first.
Values that appear once
Return a list of numbers that appear exactly once in the input list, in original order.
Anagram Groups by Size
Group a list of words into anagram groups and return them sorted by group size and lexicographically.
Top K Frequent Words
Given a list of words, return the k most frequent words sorted by frequency (descending) and then alphabetically.
Sort by frequency
Sort a list by element frequency descending, with ties broken by order of first occurrence.
Set intersection size
Count how many distinct values appear in both of two given lists.
Symmetric Difference
Write a function that computes the symmetric difference of two lists, returning a sorted list of unique elements.
Disjoint Set Check
Check if two lists are disjoint by verifying they have no common elements.
Frequency sort descending
Write a function that sorts a list by frequency descending while preserving original order for ties.
Count Pairs with Sum
Implement a function that counts the number of distinct pairs in a list summing to a target.
Queue class (list-based)
Implement a Queue class with enqueue, dequeue, peek, is_empty, and is_full methods using a list.
Binary search
Return the index of target in a sorted list, or -1 if not present.
Count pairs with given difference
Count how many unordered pairs in a list have a given absolute difference using an efficient approach.
Pascal Triangle Row
Given a non-negative integer n, return the nth row of Pascal's triangle as a list of integers.
Bubble Sort
Implement bubble sort that sorts a list of numbers in ascending order.
Selection Sort Implementation
Implement selection sort to sort a list of numbers in ascending order.
Exponential Search
Implement exponential search to find any valid index of a target in a sorted list.
Custom iterator class
Implement a custom iterator class that repeatedly yields elements from a list up to a given number of times.
Generator Pipeline
Implement a generator function that yields only even numbers from an input list, squared.
Pairwise Sequence Pairs
Write a generator function pairwise that yields each consecutive overlapping pair from any iterable as lists.
Groupby Consecutive
Write a generator function that yields (value, list_of_occurrences) for each run of consecutive equal items.
Polynomial evaluator
Implement a polynomial evaluator that computes the value of a polynomial given as a list of coefficients.
Sieve of Eratosthenes
Implement the Sieve of Eratosthenes to return a sorted list of all primes up to a given integer n.
Prime Factorization
Return a sorted list of prime factors of a positive integer, including repeated factors.
Single Number XOR
Given a non-empty list of integers where every element appears twice except one, return the single number using XOR.
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.
House Robber
Given a list of house values, return the maximum sum you can rob without robbing two adjacent houses.
Triangle Minimum Path
Compute the minimum path sum from top to bottom of a triangle given as a list of lists.
Binary Search Tree Class
Build a BinarySearchTree class and a sequence runner that executes a list of operations.
Postorder Traversal
Implement a function that returns the postorder traversal of a binary tree as a list of node values.
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.
Permutation Generator
Write a function that returns all permutations of a list of distinct integers.
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.
Next Greater Element
Return a list where each position holds the next greater element to the right, or -1 if none exists.
Showing 91 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
- 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.