FizzBuzz, precisely
Return a newline-separated string for 1..n: Fizz, Buzz, FizzBuzz, or the number.
Even or odd?
Return 'even' or 'odd' for an integer.
Sum of digits
Return the sum of all decimal digits of a non-negative integer.
Power of two?
Return True if n is an exact power of 2.
Prime checker
Return True if n is a prime number.
Compound interest
Return the future balance after compound interest, rounded to two decimals.
Clamp a Number to a Range
Implement a clamp function that returns a value within a specified range.
Min of three numbers
Write a function that returns the minimum of three integers.
Integer division and remainder
Write a function that performs integer division and returns both quotient and remainder.
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.
Sign of a Number
Write a function that returns the sign of a number as a string.
Is a multiple of both
Write a function that returns True if a number is divisible by both of two given divisors.
Digit count of an integer
Given an integer, return the number of digits it has, handling negatives and zero correctly.
Boolean from comparison chain
Implement a function that evaluates a chain of comparisons and returns the boolean result.
Max of a variable-length list
Implement a function that returns the maximum value from a list of numbers without using max().
Toggle a boolean n times
Apply boolean toggling n times and return the final boolean value.
Between inclusive
Write a function that returns True if a number is between two given bounds, inclusive of the bounds.
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.
Boolean Mask Filter
Write a function that filters a list based on a boolean mask and returns the selected elements.
Set symmetric difference
Write a function that returns the elements found in exactly one of two sets, sorted ascending.
Swap Two Values
Implement a Python function that swaps two given values and returns them in swapped order.
Hello, name!
Implement a function that returns a personalized greeting for a given name.
Leap Year Checker
Implement a function that returns True if a year is a leap year according to the Gregorian calendar rules.
Absolute Difference
Implement a function that returns the absolute difference between two numbers.
Max of three numbers
Implement a function that returns the maximum of three numbers using comparisons.
Sign of a number
Write a function sign_of_number that returns -1 for negatives, 0 for zero, and 1 for positives.
Countdown printer
Implement a function that prints a countdown from a given number down to 1, then returns 'Go!'.
Sum from 1 to n
Write a function that returns the sum of all integers from 1 to n (inclusive).
Average of a list
Write a function that computes the average of a list of numbers, handling empty lists by returning 0.
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.
Is divisible by?
Create a function that returns True if a is divisible by b with no remainder, with a clear definition of edge cases.
Area of Rectangle
Write a function that returns the area of a rectangle given its width and height.
Perimeter of triangle
Given three side lengths, return the perimeter (sum) of the triangle.
Volume of Cube
Write a Python function that returns the volume of a cube given its side length.
Modulo Remainder
Implement a function that returns the remainder of a divided by b without using the modulo operator.
Print Pyramid Pattern
Implement a function that returns a centered asterisk pyramid as a list of strings.
Last Digit Extractor
Write a function that returns the last digit of a non-negative integer using the modulo operator.
Count word occurrences
Write a function that takes a sentence and returns a dictionary of word counts.
Find Missing Number
Given a list of n distinct integers from 0..n with one missing, return the missing number.
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.
Validate date format
Return True if input string is exactly YYYY-MM-DD and a real calendar date.
Count Leading Zeros
Write a function that returns the number of leading zeros in a list of integers.
Reverse a string
Return the characters of the string in reverse order.
Palindrome check
Return True if the string reads the same forwards and backwards (ignoring case and non-alphanumeric).
Title case converter
Return the string with each word capitalised.
Anagram check
Return True if two strings are anagrams of each other.
Repeat each character n times
Given a string s and an integer n, return a new string where each character of s is repeated n times consecutively.
Longest word in a sentence
Write a function that returns the longest word from a sentence, with first-occurrence tie-breaking.
Extract Digits Only
Given a string that may contain letters, symbols, and whitespace, extract all digits in order and return them as an integer.
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.
Interleave Two Strings
Given two strings s1 and s2, return a new string that interleaves them character by character, starting with s1.
Sort characters alphabetically
Sort all characters in a string alphabetically and return the sorted string.
Initials from a Full Name
Return the uppercase initials of each word in a given full name.
Is pangram?
Implement is_pangram(s) to return True if the string contains every letter from 'a' to 'z' at least once, ignoring case and non-alphabetic characters.
Remove Duplicates from String
Given a string, return a new string with each character that repeats consecutively reduced to a single occurrence.
Longest Word Finder
Write a function that extracts alphabetic words from a string and returns the longest one, with ties broken by earliest position.
Abbreviate Name
Create a function that takes a full name and returns an abbreviated version with initials and the last name.
Mask email address
Given an email address, return a masked version that hides everything but the first and last character of the local part and the domain.
Find substring index
Implement a function that returns the starting index of the first occurrence of a substring using only basic string indexing and slicing.
Sort characters in string
Write a function that sorts the characters in a string and returns the sorted string.
Most Common Character
Return the character that appears most frequently in a string, breaking ties by earliest occurrence.
Index of First Occurrence
Implement a function that finds the starting index of a substring within a string, returning -1 when absent.
Safe Command Executor
Implement emulate_run that simulates running a command list and returns output and exit code.
Parse Log Line
Write a function that parses a log line and returns a dictionary with timestamp, level, and message.
Split on camelCase
Given a camelCase string, split it into words at uppercase letters and return them as lowercase words.
Validate username format
Implement a function that validates a username according to length, allowed characters, and no consecutive underscores.
Two Sum
Return indices (i, j) with i < j such that nums[i] + nums[j] == target.
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.
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.
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.
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.
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.
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.
Word frequency
Return a dict mapping each word to its count in the sentence.
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.
Word to Index Map
Create a function that returns a dictionary mapping each unique word to the index of its first occurrence.
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.
Nested get with dotted path
Implement a function that safely retrieves a value from a deeply nested dictionary using a dot-separated path, returning a default if any key is missing.
Common Keys of Two Dictionaries
Implement a function that finds keys shared by two dictionaries and returns them sorted.
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.
Top k keys by count
Given a dictionary mapping keys to counts, return the top k keys with the highest counts, breaking ties alphabetically.
Values that appear once
Return a list of numbers that appear exactly once in the input list, in original order.
Two Sum with Dict
Implement the classic Two Sum problem: return indices of two numbers that add up to a target using a dict.
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.
Symmetric Difference
Write a function that computes the symmetric difference of two lists, returning a sorted list of unique elements.
Valid parentheses
Return True if brackets in the string close in the correct order.
Binary search
Return the index of target in a sorted list, or -1 if not present.
Index of peak element
Implement a function that returns the index of any peak element in a given integer array.
Pascal Triangle Row
Given a non-negative integer n, return the nth row of Pascal's triangle as a list of integers.
Once Decorator: Run a Function Only Once
Implement a decorator that caches and returns the result of the first call for subsequent calls.
Print Args Decorator
Write a decorator that prints function name and arguments, then returns the original result.
Safe Integer from String
Implement safe_int that converts a string to an integer, returning a default value on any failure, with support for an optional base.
Safe divide function
Implement safe_divide that returns None on ZeroDivisionError and TypeError.
Safe int parser
Implement safe_parse_int that converts a string to an int, returning a default value on failure.
Safe Float Parser
Write a function that safely converts a string to a float, returning None for invalid inputs.
Key error handler
Implement a safe dictionary access function that returns a default value on missing keys.
Else on try block
Implement a function that uses try-except-else to safely divide two numbers and return a result or error description.
Nth Triangular Number
Implement a function that returns the nth triangular number efficiently.
Integer Square Root Floor
Implement a function that returns the greatest integer whose square is ≤ n, using only integer operations.
Catalan number
Implement a function that returns the nth Catalan number using dynamic programming.
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.
Sum of divisors
Given an integer n, return the sum of all its positive divisors.
Perfect Number Check
Write a function that returns True if a number is perfect, i.e., equal to the sum of its proper divisors.
Happy number check
Implement a function that returns True if a number is happy, False otherwise.
Triangular Number
Implement a function that returns the nth triangular number using the closed-form formula.
Pentagonal Number
Given a positive integer n, return the nth pentagonal number using the formula P(n) = n(3n - 1)/2.
Partition function
Write a function that returns the number of ways to write a positive integer as a sum of positive integers (order irrelevant).
Count Set Bits
Implement a function that returns the number of set bits (1s) in the binary representation of a non-negative integer.
Check Power of Two Bits
Implement is_power_of_two(n) that returns True if n is a power of two and False otherwise.
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.
Find Rightmost Set Bit
Implement a function that returns the 1-indexed position of the rightmost set bit of a positive integer, or 0 if none.
Isolate Rightmost Set Bit
Given an integer, return a number with only its rightmost set bit set.
Set kth Bit
Implement a function that sets the kth bit (0-indexed) of a non-negative integer to 1 and returns the result.
Climbing Stairs
Implement a function that returns the number of distinct ways to climb n stairs using steps of 1 or 2.
House Robber
Given a list of house values, return the maximum sum you can rob without robbing two adjacent houses.
Binary Tree Inorder Traversal
Implement an inorder traversal function that returns node values in left-root-right order.
Preorder Traversal
Implement a function that returns the preorder traversal values of a binary tree.
Postorder Traversal
Implement a function that returns the postorder traversal of a binary tree as a list of node values.
Maximum depth of tree
Implement max_depth(root) to return the maximum depth of a binary tree.
Find the Town Judge
Given n people and a trust array, return the town judge or -1.
Permutation Generator
Write a function that returns all permutations of a list of distinct integers.
Longest Substring Without Repeating Characters
Implement a function that returns the length of the longest substring without repeating characters.
Next Greater Element
Return a list where each position holds the next greater element to the right, or -1 if none exists.
Days in month
Write a function that returns the number of days in a given month and year, correctly handling leap years.
Showing 144 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.