Word Search II

Algorithms
Hard
Stripe
101.7K views

Given a 2D board and a list of words, find all words on the board. The search must be optimized using a Trie and Backtracking.

Why Interviewers Ask This

Stripe values engineers who can balance algorithmic rigor with practical system performance. This question tests your ability to optimize brute-force search using a Trie for prefix pruning, demonstrating deep understanding of space-time trade-offs. It evaluates whether you can handle complex backtracking without hitting Time Limit Exceeded errors, a critical skill for high-throughput payment systems.

How to Answer This Question

1. Clarify constraints: Ask about board dimensions and word list size to determine if a simple DFS is viable or if optimization is mandatory. 2. Propose the Trie structure: Explain that inserting all words into a Trie allows early termination during traversal when a path no longer matches any word prefix. 3. Define the backtracking logic: Describe iterating through every cell, initiating a DFS, marking visited cells to prevent cycles, and backtracking by unmarking them. 4. Discuss optimization details: Mention removing found words from the Trie to avoid re-scanning and handling duplicate word detection efficiently. 5. Analyze complexity: Calculate time complexity as O(M*N*4^L) where L is max word length, noting how the Trie reduces the effective branching factor significantly compared to checking each word individually.

Key Points to Cover

  • Explicitly mentioning the Trie data structure for prefix-based pruning
  • Demonstrating clear backtracking mechanics including state restoration
  • Discussing the removal of found words to optimize subsequent searches
  • Providing accurate time and space complexity analysis
  • Connecting the algorithm's efficiency to real-world system constraints

Sample Answer

To solve this efficiently, I would first build a Trie from the given list of words. This allows us to check prefixes in constant time relative to the depth of the node. If we start a search from a specific cell on the bo…

Common Mistakes to Avoid

  • Failing to use a Trie and instead checking every word against every path, causing TLE
  • Forgetting to mark cells as visited during recursion, leading to infinite loops
  • Not backtracking (unmarking cells) after returning from a recursive call
  • Ignoring duplicate word handling, which can cause incorrect result sets

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 145 Algorithms questionsBrowse all 57 Stripe questions