Longest Word in Dictionary
找到最长的字符串, 这个字符串的前缀字符串都在给出的字符串组里. 这个直接做吧…我看好多人用trie…懒得用了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class Solution { public String longestWord(String[] words) { Set<String> set = new HashSet<>(); for(String w : words) set.add(w); PriorityQueue<String> pq = new PriorityQueue<String>(new Comparator<String>() { public int compare(String s1, String s2) { if(s1.length() != s2.length()) // if len is not equal return s2.length() - s1.length(); // letx order else { return s1.compareTo(s2); } } }); for(String w : words) { int len = w.length(); boolean check = true; for(int i = 1; i < len; i++) { if(!set.contains(w.substring(0,i))) { check = false; break; } } if (check) pq.add(w); } return pq.peek(); } } |