对了一些,WA一个点,剩下的RE,求调
明明是模板题,我照着模板打的
#include<bits/stdc++.h>
using namespace std;
int n,m;
map<string,bool>mp;
struct trie //字典树封装模板
{
int nex[100000][26], cnt;
bool exist[100000];
void insert(char *s,int l)
{
int p=0;
for (int i=0;i<l;i++)
{
int c=s[i]-'a';
if(!nex[p][c]) nex[p][c]=++cnt;
p=nex[p][c];
}
exist[p]=1;
}
bool find(char *s,int l)
{
int p=0;
for (int i=0;i<l;i++)
{
int c=s[i]-'a';
if(!nex[p][c]) return 0;
p=nex[p][c];
}
return exist[p];
}
}tt;
char s[50];
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
memset(s,0,sizeof s);
cin>>s;int len=strlen(s);
tt.insert(s,len);
}
cin>>m;
for(int i=0;i<m;i++)
{
memset(s,0,sizeof s);
cin>>s;int len=strlen(s);
if(tt.find(s,len)==1)
{
if(!mp[s])
{
cout<<"OK\n";
mp[s]=1;
}
else cout<<"REPEAT\n";
}else cout<<"WRONG\n";
}
}