后缀自动机伪代码

p=0

extend(c)
{
	new np;
	np.max=++L;
	for (i=p;trans[i][c]==null&&i!=null;i=parent[i])
	 trans[i][c]=np;
	if (i==null)
	   trans[np]=root
    else 
      q=i.trans[c]
    if (q.max==i.max+1)
       np.parent=q;
    else new nq
         nq.trans[]=q.trans[]
         nq.parent=q.parent
         q.parent=np.parent=nq
         nq.max=i.max+1
         for (;i.trans[c]==q;i=i.parent)
             i.trans[c]=nq
    p=np
}
全部评论

相关推荐

02-15 09:23
已编辑
深圳技术大学 Java
德勤 后端 OC 实习140/天,转正税前7k
恶龙战士:不如码农烧烤
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务