摘要: 记一个KMP算法的应用,经典的KMP算法详解还是看这里 问题:给一个串,求这个串前i位构成的前缀由多少个子串组成。比如aabaabaabaab,前2位是aa,a重复了2次,前6位是aabaab,aab重复了2次,前9位是aabaabaab,aab重复了3次,前12位是aabaabaabaab,aab重复了4次。先说一下next()函数。pre[i] = j表示 S[1...j] = S[i - j....i];下面讨论当i % (i - pre[i]) == 0 时,例如i = 12, pre[12] = 9:如图。S[1...9] == S[3...12];因为已知 i % (i - pre 阅读全文
posted @ 2012-05-04 21:32 AC_Von 阅读(2142) 评论(3) 推荐(3) 编辑