字典树就是利用一个这样的树状结构,可以记录字符串有没有出现过
放个板子
int nxt[100000][26], cnt;
bool st[100000]; // 该结点结尾的字符串是否存在
void insert(string s, int l) // 插入字符串,l是字符串长度
{
int p = 0;
for (int i = 0; i < l; i++)
{
int c = s[i] - 'a';
if (!nxt[p][c]) nxt[p][c] = ++ cnt; // 如果没有,就添加结点
p = nxt[p][c];
}
st[p] = true;
}
bool find(string s, int l) // 查找字符串,l是字符串长度
{
int p = 0;
for (int i = 0; i < l; i++)
{
int c = s[i] - 'a';
if (!nxt[p][c]) return 0;
p = nxt[p][c];
}
return st[p];
}