• 720. 词典中最长的单词 (tire 应用)


     

    难度简单

    给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。

    若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。

    示例 1:

    输入:words = ["w","wo","wor","worl", "world"]
    输出:"world"
    解释: 单词"world"可由"w", "wo", "wor", 和 "worl"逐步添加一个字母组成。
    

    示例 2:

    输入:words = ["a", "banana", "app", "appl", "ap", "apply", "apple"]
    输出:"apple"
    解释:"apply" 和 "apple" 都能由词典中的单词组成。但是 "apple" 的字典序小于 "apply" 




     1 struct TrieNode {
     2     bool is_end;
     3     std::vector<TrieNode*> children;
     4     TrieNode() {
     5         this->is_end = false;
     6         this->children = std::vector<TrieNode*>(26);
     7     }
     8 };
     9 
    10 
    11 class Solution {
    12     TrieNode* root = new TrieNode();
    13     string long_str = "";
    14 public:
    15     void insert(string word) {
    16         TrieNode* node = root;
    17         for(auto ch : word) {
    18             if (node->children[ch - 'a'] == nullptr) {
    19                 node->children[ch - 'a'] = new TrieNode();
    20             }
    21             node = node->children[ch - 'a'];
    22         }
    23         node->is_end = true;
    24     }
    25     void dfs(TrieNode* node,string& path) {
    26         if (path.size() > long_str.size()) {
    27             long_str = path;
    28         }
    29         for(int i = 0; i < 26;i++) {
    30             if (node->children[i] != nullptr && node->children[i]->is_end ) {
    31                 path+=('a' + i);
    32                 dfs(node->children[i],path);
    33                 path.pop_back();
    34             }
    35         }
    36     }
    37     string longestWord(vector<string>& words) {
    38         for(auto word : words) {
    39             insert(word);
    40         }
    41         string path = "";
    42         dfs(root,path);
    43         return long_str;
    44     }
    45 };
  • 相关阅读:
    windows下 删除指定文件夹里面一周前的所有文件和文件夹的bat
    freeswitch 把SIP注册信息数据库从SQLITE 改为MYSQL的方法
    memcached+Mysql(主从)
    Linux下的MySQL主主复制
    RabbitMQ php 使用
    如果你写PHP, 请多注意自己是否有良好的习惯
    MySQL主从配置的一些总结
    Mongodb与mysql语法比较
    Yii框架tips
    Windows下Python添加MySQLdb扩展模块
  • 原文地址:https://www.cnblogs.com/zle1992/p/16341662.html
Copyright © 2020-2023  润新知