zoukankan      html  css  js  c++  java
  • trie树

    支持两个操作,插入和查询;

    
    #include<bits/stdc++.h>
    using namespace std;
    const int N=100100;
    int son[N][26];
    int cnt[N];
    int idx;
    char op[2];
    char str[N];
    void insert(char str[])
    {
        int p=0;
        for(int i=0;str[i];i++)
        {
            int u=str[i]-'a';
            if(!son[p][u])
                son[p][u]=++idx;
            p=son[p][u];	
        }
        cnt[p]++;
    }
    int query(char str[])
    {
        int p=0;
        for(int i=0;str[i];i++)
        {
            int u=str[i]-'a';
            if(!son[p][u])
                return 0;
        p=son[p][u]; 
        }   
        return cnt[p];
    }
    int main()
    {
    int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
           	scanf("%s%s ",&op,&str);       
            if(op[0]=='I')
                insert(str);//插入操作
            else printf("%d
    ",query(str));
        }
    
        return 0;
    }
    
    
  • 相关阅读:
    Nginx
    Nginx & AWStats 安装、配置、使用
    Nginx
    linux
    工作中的 Vim 和 git
    后端
    django
    django
    awk流程控制
    linux系统内置函数
  • 原文地址:https://www.cnblogs.com/bangdexuanyuan/p/13563535.html
Copyright © 2011-2022 走看看