成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[LeetCode] Longest Word in Dictionary

econi / 2515人閱讀

Problem

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].

Solution
class Solution {
    class Trie {
        Node root;
        class Node {
            boolean isWord;
            Node[] children = new Node[26];
        }
        
        public Trie() {
            root = new Node();
            root.isWord = true;
        }
        
        void insert (String str) {
            Node node = root;
            for (char ch: str.toCharArray()) {
                int index = ch - "a";
                if (node.children[index] == null) {
                    node.children[index] = new Node();
                }
                node = node.children[index];
            }
            node.isWord = true;
        }
        
        boolean hasWord(String word) {
            Node node = root;
            for (char ch: word.toCharArray()) {
                int index = ch - "a";
                if (node.children[index] == null || !node.isWord) return false;
                node = node.children[index];
            }
            return true;
        }
    }
    public String longestWord(String[] words) {
        Trie trie = new Trie();
        for (String word: words) {
            trie.insert(word);
        }
        String res = "";
        for (String word: words) {
            if (trie.hasWord(word) && 
               (word.length() > res.length() || (word.length() == res.length() && word.compareTo(res) < 0))) {
                res = word;
            }
        }
        return res;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77001.html

相關(guān)文章

  • [LintCode] Longest Words

    Problem Given a dictionary, find all of the longest words in the dictionary. Example Given { dog, google, facebook, internationalization, blabla } the longest words are(is) [internationaliz...

    roadtogeek 評論0 收藏0
  • [Leetcode] Word Break 單詞分解

    摘要:所以只要驗證滿足這個條件,我們則可以確定這個較長的字符串也是可分解的。同時,我們用數(shù)組記錄下字符串長度遞增時可分解的情況,以供之后使用,避免重復(fù)計算。當(dāng)遍歷完這個詞典并找出所有以第一個字母開頭的詞以后,我們進(jìn)入下一輪搜索。 Word Break I Given a string s and a dictionary of words dict, determine if s can ...

    Ververica 評論0 收藏0
  • leetcode140. Word Break II

    摘要:題目要求現(xiàn)在有一個非空字符串和一個非空的字典?,F(xiàn)在向中添加空格從而構(gòu)成一個句子,其中這個句子的所有單詞都存在與中。 題目要求 Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, add spaces in s to construct a sentence ...

    huayeluoliuhen 評論0 收藏0
  • [Leetcode] Alien Dictionary 外文字典

    摘要:拓?fù)渑判驈?fù)雜度時間空間思路首先簡單介紹一下拓?fù)渑判?,這是一個能夠找出有向無環(huán)圖順序的一個方法假設(shè)我們有條邊,先將每個節(jié)點的計數(shù)器初始化為。最后,我們開始拓?fù)渑判颍瑥挠嫈?shù)器為的字母開始廣度優(yōu)先搜索。 Alien Dictionary There is a new alien language which uses the latin alphabet. However, the ord...

    pkhope 評論0 收藏0
  • [leetcode] Minimum Window Substring

    摘要:使用而不是因為我們需要的是最值,中間值我們不在乎,所以一次收斂到最小。下面來三個需要查重并且記錄上次出現(xiàn)的位置,選擇以為例,走到用做檢查,發(fā)現(xiàn)出現(xiàn)過,把移到的下一個。是上個題目的簡易版,或者特殊版。 這里聊一聊解一類問題,就是滿足某一條件的substring最值問題。最開始我們以Minimum Window Substring為例,并整理總結(jié)leetcode里所有類似題目的通解。 Gi...

    Pines_Cheng 評論0 收藏0

發(fā)表評論

0條評論

econi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<