trie树萌新求助,30分!!
查看原帖
trie树萌新求助,30分!!
662166
lgdpgz楼主2022/1/13 22:11
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    int n,m,son[1000010][26];
    int cnt[1000010],flag[10000000];
    int p,idx=1,i,j,u;
    char str[1000010],str1[1000010];
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%s",str);
        p=1;
        for(j=0;str[j];j++){
            u=str[j]-'a';
            if(!son[p][u])
                son[p][u]=++idx;
            p=son[p][u];
        }
        cnt[p]=1;
    }
    scanf("%d",&m);
    for(i=0;i<m;i++){
        scanf("%s",str1);
        p=1;
        for(j=0;str1[j];j++){
            u=str1[j]-'a';
            if(!son[p][u])
            printf("WRONG\n");
            p=son[p][u];
            
        }
        if(cnt[p]==1 && flag[p]==1)
            printf("REPEAT\n");
            if(cnt[p]==1 && flag[p]==0){
            printf("OK\n");
            flag[p]=1;
            }
    }

    return 0;
}
2022/1/13 22:11
加载中...