KMP&&E-KMP总结(kuangbin)

1 篇文章 0 订阅

kmp:

  1. next数组:子串的前缀和后缀最大长度,也就是子串后缀与子串的最大匹配长度。
  2. kuangbin模板上的kmp_pre求next数组优化版,部分next[i]=-1,可能会在有些题目上出错,慎用.
  3. 周期串:(i%(i-next[i])==0)最小周期(i-next[i]),循环节(i/(i-next[i]));
  4. 前缀在原串中出现的次数dp[i]=dp[NEXT[i]]+1;第i个字符结尾的前缀数等于以第next[i]个字符为结尾的前缀数加上它自己本身。

e-kmp:

  1. extend[i],S[i-len]与T的前缀的最大匹配长度,next[i],T[i-len]与T的前缀的最大匹配长度
  2. i+extend[i]==len表示S在i之后的后缀与T的前缀相匹配
  3. 上面那个dp方程可以直接用自身匹配的next求和
  4. 判断前缀或者后缀是回文串:后缀:a->reverse->b
    求a当作母串的extend数组i+extend[i]==len就是回文串
    前缀:reverse之后b当作母串求extend2同样判断就行
    9.翻转||往后接一个相同的串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值