相关概念
假设节点的分支数为node_Branch,字符串数量为n,字符串最大长度为len,
那么最大节点数组=Arr_sizemax= n * len
int nx[100000][27];
int cnt=0;
bool end[100000]; //终结点是否存在
void insert(string s){
int pos=0;
int len=s.size();
for (int i=0; i<len; i++){
int t=s[i]-'a';
if (!nx[pos][t]) nx[pos][t]=++cnt; //添加节点
pos=nx[pos][t];
}
end[pos]=1; //标记终节点
}
bool find(string s){
int pos=0;
int len=s.size();
for (int i=0; i<len; i++){
int t=s[i]-'a';
if (nx[pos][t]) return 0;
pos=nx[pos][t];
}
return end[pos];
}