Dashboard
#41. Word Search IIHardTries

Given a 2-D grid of characters board and a list of strings words, return all words that are present in the grid.

For a word to be present it must be possible to form the word with a path in the board with horizontally or vertically neighboring cells. The same cell may not be used more than once in a word.

Example 1:

Input:
board = [
  ["a","b","c","d"],
  ["s","a","a","t"],
  ["a","c","k","e"],
  ["a","c","d","n"]
],
words = ["bat","cat","back","backend","stack"]

Output: ["cat","back","backend"]

Example 2:

Input:
board = [
  ["x","o"],
  ["x","o"]
],
words = ["xoxo"]

Output: []

Constraints:

  • 1 <= board.length, board[i].length <= 12
  • board[i] consists only of lowercase English letter.
  • 1 <= words.length <= 30,000
  • 1 <= words[i].length <= 10
  • words[i] consists only of lowercase English letters.
  • All strings within words are distinct.
Examples
Example 1:
Input: board = [ ["a","b","c","d"], ["s","a","a","t"], ["a","c","k","e"], ["a","c","d","n"] ], words = ["bat","cat","back","backend","stack"]
Output: ["cat","back","backend"]
Example 2:
Input: board = [ ["x","o"], ["x","o"] ], words = ["xoxo"]
Output: []
Constraints
  • `1 <= board.length, board[i].length <= 12`
  • `board[i]` consists only of lowercase English letter.
  • `1 <= words.length <= 30,000`
  • `1 <= words[i].length <= 10`
  • `words[i]` consists only of lowercase English letters.
  • All strings within `words` are distinct.
Prerequisites
  • Matrix DFS(Data Structures & Algorithms for Beginners)
  • Trie(Advanced Algorithms)
Target: O(N) time • O(1) spaceArray / String / Backtracking / Trie / Matrix
Socratic AI Tutor
Gemini 3.8 Flash
Loading editor...

Click "Run" or press Ctrl+Enter to execute test cases.