zoukankan      html  css  js  c++  java
  • Leetcode字典树-720:词典中最长的单词

    第一次做leetcode的题目,虽然做的是水题,但是菜鸟太菜,刚刚入门,这里记录一些基本的知识点。大佬看见请直接路过。

    https://leetcode-cn.com/problems/longest-word-in-dictionary/

    下面是代码与我的解析:

     1 class Solution {
     2 public:
     3 
     4     class Tree{
     5     public://这里为了之后的调用需要明确,否则就被认定为是Tree的private,无法调用
     6         bool has_words=false;
     7         vector<Tree*> v;
     8 
     9         Tree():has_words(false),v(26){};
    10         //初始化时对v传递参数26是实际上是产生了关于vector的一位数组
    11         static void wordsinsert(Tree* t,string aim){
    12             for(char c:aim){
    13                 if(!t->v[c-'a'])t->v[c-'a']=new Tree;
    14                 t=t->v[c-'a'];
    15             }
    16             t->has_words=true;
    17         }
    18 
    19         static bool searchwords(Tree* t,string aim){
    20             for(char c:aim){
    21                 t=t->v[c-'a'];
    22                 if(!t->has_words)return false;
    23             }
    24             return true;
    25         }
    26     };
    27 
    28     string longestWord(vector<string>& words) {
    29         Tree* root=new Tree;
    30         for(string aim:words){//注意熟悉遍历的方法
    31             Tree::wordsinsert(root,aim);//由于Tree中的后两个函数都声明了static类型,所以这里可以在没有对应的类型实例的情形下借助类型名直接调用函数
    32         }//详细关于静态函数的解析(一定要看仔细!)
    33         string longest="";
    34         for(string aim:words){
    35             if(Tree::searchwords(root,aim)){
    36                 if(aim.size()>longest.size())longest=aim;
    37                 else if(aim.size()==longest.size()&&aim<longest)longest=aim;
    38             }//字典序直接比较即可
    39         }
    40         return longest;
    41     }
    42 };

    OK

  • 相关阅读:
    #256 (Div. 2)A. Rewards
    1113 矩阵快速幂
    1108 距离之和最小V2
    1287 加农炮
    1191 消灭兔子
    1051 最大子矩阵
    1086 背包
    1105 第K大的数
    2016 CCPC 网络赛 B 高斯消元 C 树形dp(待补) G 状压dp+容斥(待补) H 计算几何
    Educational Codeforces Round 18 C dp,思维 D lowbit,思维
  • 原文地址:https://www.cnblogs.com/savennist/p/12377831.html
Copyright © 2011-2022 走看看