zoukankan      html  css  js  c++  java
  • 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.

    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:

    • All the strings in the input will only contain lowercase letters.
    • The length of words will be in the range [1, 1000].
    • The length of words[i] will be in the range [1, 30].

    Sort the words alphabetically, therefore shorter words always comes before longer words;
    Along the sorted list, populate the words that can be built;
    Any prefix of a word must come before that word.
    注意Arrays.sort的时候,字母序优先于长度,更新res的时候要判断s的长度是否大于res的长度res = s.length() > res.length() ? s : res;

    time: O(nlog(nL))   -- L: average length of word, space: O(n)

    class Solution {
        public String longestWord(String[] words) {
            Arrays.sort(words);
            
            String res = "";
            Set<String> set = new HashSet<>();
            for(String word : words) {
                if(word.length() == 1 || set.contains(word.substring(0, word.length() - 1))) {
                    res = word.length() > res.length() ? word : res;
                    set.add(word);
                }
            }
            return res;
        }
    }
  • 相关阅读:
    java 中静态变量和实例变量之间的区别
    java 中final 引用不可变,但是引用还是可以发生变化的
    java中char和Unicode之间的关系
    java 中终止内层循环的方法
    ssh 公钥免密码登陆
    关于Python 中unicode 转码的问题
    Python中Unicode码和非Unicode码引起的错误与格式转换
    第一次写博客,怎么写?
    zookeeper实现主-从结构的一般原理
    Python中Tuple的词源有趣探索
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10166785.html
Copyright © 2011-2022 走看看