zoukankan      html  css  js  c++  java
  • Trie

    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<cstdio>
    #define Max 26
    using namespace std;
    
    struct TrieNode{
        int ti;
        TrieNode *next[Max];
        TrieNode(){
            ti=0;
            memset(next,NULL,sizeof(next));
        }
    };
    
    void Insert(TrieNode *root,char * str){
        int len=strlen(str);
        TrieNode *p=root;
        for(int i=0;i<len;++i){
            int id=str[i]-'a';
            if(p->next[id]==NULL)
                p->next[id]=new TrieNode();
            p=p->next[id];
            p->ti++;
        }
    }
    
    int searchTrie(TrieNode *root,char *str){
        TrieNode *p=root;
        int len=strlen(str);
        for(int i=0;i<len;++i){
            int id=str[i]-'a';
            if(p->next[id]==NULL)
                return 0;
            p=p->next[id];
        }
        return p->ti;
    }
    
    int Behind(TrieNode *root,char *str){
        TrieNode *p=root;
        int len=strlen(str);
        int ans=0;
        for(int i=0;i<len;++i){
            int id=str[i]-'a';
            for(int j=id+1;j<Max;++j)
                if(p->next[j]!=NULL)
                    ans+=p->next[j]->ti;
            p=p->next[id];
        }
        for(int i=0;i<Max;++i)
            if(p->next[i]!=NULL)
                ans+=p->next[i]->ti;
        return ans;
    }
    
    int n,m,ans;
    char str[50005];
    char now[50006];
    
    int main(){
        TrieNode *root=new TrieNode();
        scanf("%d",&n);
        for(int i=0;i<n;++i){
        	scanf("%s",str);
        	Insert(root,str);
        }
        scanf("%d",&m);
        for(int i=1;i<=m;++i){
        	scanf("%s",str);
        	printf("%d
    ",searchTrie(root,str));
        }
        delete root;
        return 0;
    }
    
  • 相关阅读:
    Matlab quad
    卷积神经网络(CNN)代码实现(MNIST)解析
    Redis具体解释
    Nginx Https 配置
    Nginx 常用配置
    Nginx gzip压缩配置
    Nginx 静态资源配置
    Idea给类和方法增加注释模板
    MySql定时备份数据库
    Nginx 日志切割
  • 原文地址:https://www.cnblogs.com/qdscwyy/p/7792206.html
Copyright © 2011-2022 走看看