720. Longest Word in Dictionary
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.
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]
.class Solution { public String longestWord(String[] words) { Map<Integer, String> hmap = new HashMap<>(); int max = Integer.MIN_VALUE; for(String word : words){ Set<Character> set = new HashSet<>(); for(Character c : word.toCharArray()){ set.add(c); } if(max <= set.size()){ max = set.size(); if(hmap.containsKey(max)){ if(word.compareTo(hmap.get(max)) > 0){ //hmap.remove(max); hmap.put(max, word); } }else{ hmap.put(max, word); } } } if(hmap.containsKey(max)){ return hmap.get(max); } return ""; } }
[문제] https://leetcode.com/problems/longest-word-in-dictionary/
-
720. Longest Word in Dictionary
-
225. Implement Stack using Queues
-
56. Merge Intervals
-
844. Backspace String Compare
-
222. Count Complete Tree Nodes
-
697. Degree of an Array
-
605. Can Place Flowers
-
724. Find Pivot Index
-
448. Find All Numbers Disappeared in an Array
-
628. Maximum Product of Three Numbers
-
532. K-diff Pairs in an Array
-
897. Increasing Order Search Tree
-
872. Leaf-Similar Trees
-
876. Middle of the Linked List
-
203. Remove Linked List Elements
-
997. Find the Town Judge
-
270. Closest Binary Search Tree Value
-
687. Longest Univalue Path
-
783. Minimum Distance Between BST Nodes
-
235. Lowest Common Ancestor of a Binary Search Tree