首页 > 代码库 > hihocoder_1014: Trie树(Trie树模板题)

hihocoder_1014: Trie树(Trie树模板题)

题目链接

技术分享
#include<bits/stdc++.h>
using namespace std;
const int L=12;

struct T
{
    int num;
    T* next[26];
    T()
    {
        num=0;
        int i;
        for(int i=0;i<26;i++)
            next[i]=NULL;
    }
}t;

void insert(char str[])
{
    T* p=&t;
    for(int i=0;str[i];i++)
    {
        int a=str[i]-a;
        if(p->next[a]==NULL)
            p->next[a]=new T;
        p=p->next[a];
        p->num++;
    }
}
int find(char str[])
{
    T* p=&t;
    for(int i=0;str[i];i++)
    {
        int a=str[i]-a;
        if(p->next[a]==NULL)
            return 0;
        p=p->next[a];
    }
    return p->num;
}

int main()
{
    int n,m;
    char str[L];
    scanf("%d",&n);
    while(n--)
        scanf("%s",str),insert(str);
    scanf("%d",&m);
    while(m--)
        scanf("%s",str),printf("%d\n",find(str));
}
View Code

 

hihocoder_1014: Trie树(Trie树模板题)