const int N=1e5+10; //注意: N的大小是所有的字符串的总长度,因为最坏的情况下是一个字符就是一个结点
int son[N][26],cnt[N],idx;
void insert(string s)//插入
{
int p=0;
for(int i=0;i<s.size();i++)
{
int u=s[i]-'a';
if(!son[p][u]) son[p][u]=++idx;
p=son[p][u];
}
cnt[p]++;
}
int query(string s)//查找
{
int p=0;
for(int i=0;i<s.size();i++)
{
int u=s[i]-'a';
if(!son[p][u]) return 0;
p=son[p][u];
}
return cnt[p];
}
我甚至觉得好简单,为什么当时想半天想不出来