Lyft VO Interview Coding Question: Word Ladder

15 Views
No Comments

A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that:

  • Every adjacent pair of words differs by a single letter.
  • Every si for 1 <= i <= k is in wordList. Note that beginWord does not need to be in wordList.
  • sk == endWord

Given two words, beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, or 0 if no such sequence exists.

Example 1:

Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
Output: 5
Explanation: One shortest transformation sequence is "hit" -> "hot" -> "dot" -> "dog" -> "cog", which is 5 words long.

Example 2:

Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
Output: 0
Explanation: The endWord "cog" is not in wordList, therefore there is no valid transformation sequence.

Constraints:

  • 1 <= beginWord.length <= 10
  • endWord.length == beginWord.length

This is a shortest-path problem on words: each valid transformation changes exactly one letter, and the dictionary defines which nodes are available. Because the goal is the minimum number of steps, BFS is the standard solution, often paired with a hash set for O(1) membership checks and visited tracking to avoid revisiting words. In the first example, the shortest path is hit -> hot -> dot -> dog -> cog, so the answer is 5. In the second example, endWord is missing from the dictionary, so no valid sequence exists and the answer is 0.

END
 0