[copy title]:
Given a list of strings 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.
If there is no answer, return the empty string.
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".
[brute force solution]:
Time analysis:
Space Analysis:
[Optimized]:
Time analysis:
Space Analysis:
[Wonderful output conditions]:
[Wonderful corner case]:
[Thinking question]:
[One sentence idea]:
[Input amount]: Empty: Normal situation: Extra large: Extra small: Special situations handled in the program: Abnormal situations (Illegal and unreasonable input):
[Paint]:
[One brush]:
[Second brush]:
[Three brushes]:
[Four brushes]:
[Five brushes]:
[Results of five-minute naked eye debug]:
[Summarize]:
[Complexity]: Time complexity: O( ) Space complexity: O( )
[English data structures or algorithms, why not use other data structures or algorithms]:
It's not that I want to use hashset, but the array simply can't easily use .contains() to judge the existence
[Key templating code]:
[Other solutions]:
[Follow Up]:
[The topics given by LC change and change]:
[Code style]: