标签:case string NPU array cte character world list however
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".
Note:
words
will be in the range [1, 1000]
.words[i]
will be in the range [1, 30]
.//Time: O(nlogn), Space: O(n) public String longestWord(String[] words) { if (words == null || words.length == 0) { return null; } Arrays.sort(words); Set<String> set = new HashSet<String>(); String result = ""; for (int i = 0; i < words.length; i++) { String s = words[i]; //千万不要忘记s.length() == 1的情况,因为开始set里面没有“” if (s.length() == 1 || set.contains(s.substring(0, s.length() - 1))) { //s.length()和result.length()比较的原因的结果要按照字母先后输出,比如apple和apply要输出的是apple result = s.length() > result.length() ? s : result; set.add(s); } } return result; }
720. Longest Word in Dictionary
标签:case string NPU array cte character world list however
原文地址:https://www.cnblogs.com/jessie2009/p/9785424.html