Max Stack Design
Implement a MaxStack class with push, pop, top, and get_max operations.
Evaluate Reverse Polish Notation
Evaluate an arithmetic expression written in reverse Polish notation using a stack.
Daily Temperatures
Given a list of daily temperatures, return for each day how many days until a warmer temperature appears.
Decode String Stack
Decode a compressed string with repeated substrings like '3[a2[c]]' to 'accaccacc' using a stack-based approach.
Remove K Digits Stack
Remove k digits from a non-negative integer string to produce the smallest possible number using a stack-based approach.
Score of Parentheses
Given a balanced parentheses string, compute its score where () is 1 and concatenation sums, nesting multiplies by 2.
Validate Stack Sequences
Given two sequences of distinct integers, verify whether the second sequence is a valid pop order for a stack given the first sequence as push order.
Buildings with ocean view
Given building heights, return sorted indices of buildings that have a clear view of the ocean to their right.
Sum of Subarray Minimums
Given an integer array, sum the minimum of all contiguous subarrays modulo 10^9+7.
Asteroid Collision
Simulate asteroid collisions with a stack and return the remaining asteroids in original order.
Decode Nested String
Implement a function that decodes a string with nested encoding patterns.
Min Heap Class
Build a MinHeap class with push, pop, peek, and size methods that maintain a valid min-heap.
Top K Frequent Elements
Given an integer array and a number k, return the k most frequent elements using a heap-based approach.
Kth Largest Element in an Array (Heap Edition)
Implement a function that returns the kth largest element in an unsorted integer array using a heap.
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.
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.
Find K pairs with smallest sums
Given two sorted arrays and an integer k, return the k smallest pairs (u, v) with the smallest sums, sorted by sum.
Last Stone Weight
Given an array of stone weights, repeatedly smash the two heaviest stones and return the last remaining weight or 0.
Meeting Rooms II with Heaps
Given a list of meeting intervals, compute the minimum number of rooms required using a heap-based approach.
Sliding Window Maximum using Heap
Given an array of integers and a window size k, return an array of maximums for each contiguous subarray of length k.
Maximum Average Pass Ratio
Given class pass/total counts and extra students, maximize the average pass ratio by assigning extra students optimally.
Minimum Cost to Connect Sticks
Compute the minimum total cost to connect all sticks into one stick by repeatedly combining two sticks with the smallest lengths.
Count nodes in a linked list
Return how many values appear in the list (one per node).
Read the head node value
Return the first value or None when the list is empty.
Showing 769–792 of 925 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.