720. Longest Word in Dictionary
https://leetcode.com/problems/longest-word-in-dictionary/
All the strings in the input will only contain lowercase letters.
The length of
The length of
---
Given a list of strings
If there is no answer, return the empty string.words representing an English Dictionary, find the longest word in words that can be built one character at a time by other words in words. If there is more than one possible answer, return the longest word with the smallest lexicographical order.
Example 1:
Input: words = ["w","wo","wor","worl", "world"] Output: "world" Explanation: The word "world" can be built one character at a time by "w", "wo", "wor", and "worl".
Example 2:
Input: words = ["a", "banana", "app", "appl", "ap", "apply", "apple"] Output: "apple" Explanation: Both "apply" and "apple" can be built from other words in the dictionary. However, "apple" is lexicographically smaller than "apply".
Note:
words will be in the range [1, 1000].words[i] will be in the range [1, 30].Intuition
Prefixes of string ~ Trie
BFS => Each time we try next level, we have longer string. Traverse in reverse to get lexicographically smallest string
DFS => Each time we reach a word node, check if length is longer or its lexicographically smaller
---
Time - O(w) - Build the trie
Space - O(w) - Trie storage
---