Reentrant Lock Manager
Implement a ReentrantLock class with acquire, release, locked, owner, and helper functions that test thread-safety with real threads.
Design Twitter Feed
Implement a Twitter class with postTweet, getNewsFeed, follow, and unfollow methods.
Observer pattern lite
Implement a simple Subject class supporting subscribe, unsubscribe, and notify observers.
Deck of Cards Class
Implement a Deck class representing a standard 52-card deck with shuffle, deal, and len support.
String Representation Mixin
Implement a mixin class that provides generic __repr__ and __str__ based on instance attributes.
Dataclass with slots
Implement a slotted frozen dataclass representing a 2D point with total ordering.
Singleton Factory
Implement a factory class that returns a singleton instance per key.
Playing card class
Design a PlayingCard class with suit, rank, color, and equality/comparison magic methods.
Seat Manager Design
Implement a SeatManager class that supports reserving the smallest available seat and unreserving seats.
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.
Quicksort
Implement quicksort and return a sorted list.
BFS level-order traversal
Return the level-order traversal of a binary tree as a list of lists.
Coin change (DP)
Find the minimum number of coins to make exactly the target amount.
LRU cache decorator
Implement @lru_cache(maxsize=N) for unary functions using OrderedDict.
Graph DFS
Return all nodes reachable from a start node via DFS.
Longest increasing subsequence
Return the length of the longest strictly increasing subsequence.
Topological sort (Kahn)
Return a valid topological ordering of tasks, or [] if a cycle exists.
Word ladder length
Return the length of the shortest transformation from beginWord to endWord changing one letter at a time.
Index of peak element
Implement a function that returns the index of any peak element in a given integer array.
Count inversions lite
Implement a function that counts inversions in a list of numbers efficiently.
Count pairs with given difference
Count how many unordered pairs in a list have a given absolute difference using an efficient approach.
Find Peak Element
Implement a function that returns the index of any peak element in an integer array.
Previous Smaller Element
Find the nearest previous index with a smaller value for every element in an array.
Showing 337–360 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.