码迷,mamicode.com
首页 > 其他好文 > 详细

Trie树模板

时间:2020-01-26 14:29:52      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:==   div   ret   turn   模板   class   二维   str   存储   

 

      static final int max=100005;     //所有字符总数
        static int son[][]=new int[max][26];//son数组存储每个节点的儿子;一维表示父节点下标,二维表示小写字母 son[x][0~25]
        static int cnt[]=new int[max];      //cnt[i]存储以下标i为结点的字符串的数量;
        static int idx;                     //idx表示当前用到了那个下标,下标是0的点既是根节点又是空节点
        static void insert(String s){
                int p=0;
                for(int i=0;i<s.length();i++){
                        int u=s.charAt(i)-‘a‘;
                        if(son[p][u]==0) son[p][u]=++idx;
                        p=son[p][u];
                }
                cnt[p]++;
        }
        static int query(String s){
                int p=0;
                for(int i=0;i<s.length();i++){
                        int u=s.charAt(i)-‘a‘;
                        if(son[p][u]==0) return 0;
                        p=son[p][u];
                }
                return cnt[p];
        }

 

Trie树模板

标签:==   div   ret   turn   模板   class   二维   str   存储   

原文地址:https://www.cnblogs.com/qdu-lkc/p/12234096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!