The Page Turner
A medium Python interview practice problem on DataDriven. Write and execute real python code with instant grading.
- Domain
- Python
- Difficulty
- medium
- Seniority
- L4
Problem
Implement a Paginator class that takes a list of pages (each page is itself a list of items) and iterates through all items across all pages in order. It must support the Python iterator protocol (`__iter__` and `__next__`): `__iter__` returns the iterator and `__next__` yields the next item, raising `StopIteration` when every page is exhausted. Empty pages must be skipped silently, and an empty list of pages yields nothing. Then write a top-level driver `paginate(pages)` that constructs a `Paginator` over the pages and returns the flattened item sequence as a list (`list(Paginator(pages))`). The grader calls `paginate(pages)` and expects the flattened items in page-then-item order.
Summary
Nobody loads everything at once.
Practice This Problem
Solve this Python problem with real code execution. DataDriven runs your Python code in a real environment and grades it automatically.