PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/OpenAI

Design a crossword puzzle solver system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates algorithm design, constraint solving, efficient lookup data structures, and system scalability for handling large dictionaries, placing it at the intersection of System Design and algorithms/constraint-solving domains.

  • hard
  • OpenAI
  • System Design
  • Software Engineer

Design a crossword puzzle solver system

Company: OpenAI

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

## Design a crossword puzzle solver Design a system that can **solve a crossword puzzle**. ### Inputs - A 2D `board` grid: - Some cells are **blocked** (black squares) - Some cells are **empty** (need letters) - Optionally, some cells may already contain a fixed letter - A `dictionary` (word list) A valid solution must: - Fill every non-blocked cell with a letter - Every horizontal and vertical contiguous run of non-blocked cells (a “slot”) must form a word present in the dictionary - Respect pre-filled letters and intersections ### Outputs - One solved board (or all solutions / top-K solutions, if you choose—state your choice) - If no solution exists, return “no solution” ### What to cover - Core algorithmic approach and data structures - How you prune the search space and handle constraints from intersections - Complexity considerations - How you would structure this as a service/API if the dictionary and traffic are large (caching, precomputation, scaling) State any assumptions (board size, dictionary size, allowed alphabets, whether repeated words are allowed, etc.).

Quick Answer: This question evaluates algorithm design, constraint solving, efficient lookup data structures, and system scalability for handling large dictionaries, placing it at the intersection of System Design and algorithms/constraint-solving domains.

Related Interview Questions

  • Design a Distributed Rate Limiter - OpenAI
  • Design a Distributed Crossword Solver - OpenAI (medium)
  • Design Mobile Model Usage Quotas - OpenAI (medium)
  • Design a Slack-Like Messaging System - OpenAI (medium)
  • Design a Real-Time Chess Service - OpenAI (medium)
OpenAI logo
OpenAI
Feb 11, 2026, 12:00 AM
Software Engineer
Technical Screen
System Design
34
0
Loading...

Design a crossword puzzle solver

Design a system that can solve a crossword puzzle.

Inputs

  • A 2D board grid:
    • Some cells are blocked (black squares)
    • Some cells are empty (need letters)
    • Optionally, some cells may already contain a fixed letter
  • A dictionary (word list)

A valid solution must:

  • Fill every non-blocked cell with a letter
  • Every horizontal and vertical contiguous run of non-blocked cells (a “slot”) must form a word present in the dictionary
  • Respect pre-filled letters and intersections

Outputs

  • One solved board (or all solutions / top-K solutions, if you choose—state your choice)
  • If no solution exists, return “no solution”

What to cover

  • Core algorithmic approach and data structures
  • How you prune the search space and handle constraints from intersections
  • Complexity considerations
  • How you would structure this as a service/API if the dictionary and traffic are large (caching, precomputation, scaling)

State any assumptions (board size, dictionary size, allowed alphabets, whether repeated words are allowed, etc.).

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More OpenAI•More Software Engineer•OpenAI Software Engineer•OpenAI System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.