字典树+kmp算法
- 遍历root节点所有子节点a b c,放入queue中,并且 a b c 的fail指向root
- 然后queue中移除一个节点c1,然后遍历c1的所有子节点 即d2,并加入到queue中,
- 如果c1.fail[d2]!=null说明有公共前缀,然后完成fail节点指向(c2节点指向c1节点)
- 如果==null说明没有公共前缀,就把fail指向root(d2节点)
- 依次递归,找完所有节点,即完成ac自动机的构建
构建字典树
遍历字典树
第一次遍历根节点的子节点,并且把fail指向root,把a b c 放入queue中
重queue中取出一个节点c1,遍历c1的子节点,得到d2,放入queue