被最后一个点hack掉了,为啥?
查看原帖
被最后一个点hack掉了,为啥?
856309
oiyang楼主2023/6/18 09:30
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e4*51;
int n,m;
char s[60];
int ch[maxn][27],tot=1;
int tag[maxn];
void insert(char *str)
{
    int len=strlen(str),p=1;
    for(int k=0;k<len;k++)
    {
        int temp=str[k]-'a';
        if(ch[p][temp]==0)
            ch[p][temp]=++tot;
        p=ch[p][temp];
    }
    tag[p]=1;
}
string search(char *str)
{
    int len=strlen(str),p=1;
    for(int k=0;k<len;k++)
    {
        p=ch[p][str[k]-'a'];
        if(p==0)
            return "WRONG";
    }
    if(tag[p]==1)
    {
        tag[p]=2;
        return "OK";
    }
    else
        return "REPEAT";
}
int main()
{
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s;
        insert(s);
    }
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>s;
        cout<<search(s);
        cout<<endl;
    }
    return 0;
}
2023/6/18 09:30
加载中...