Trie 树模板

Trie树模板

const int N = 1000010;
int son[N][27],ids, cnt[N];
void insert(string str){	
    int p=0;
    for (int i = 0; i < str.size(); i ++ ){
        int u=str[i]-'a';
        if(!son[p][u])son[p][u]=++ids;
        p=son[p][u];
    }
    cnt[p]++;  
}
int find(string str){
    int p=0;
    for (int i = 0; i < str.size(); i ++ ){
        int u=str[i]-'a';
        if(!son[p][u])
        return 0;
        p=son[p][u];
    }   
    return cnt[p];
}

你可能感兴趣的:(算法,c++,数据结构,算法)