从最直观的逻辑看一下KMP算法
有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢,KMP算法就是一种方法,看下图:
如果使用暴力匹配 ,假如S(x)-S(k)对应P(0)-P(k-x)的部分都相同(此处约定:S(n)代表字符串S中第n个字符,-代表到的意思,并非减),但是S(k+1)不等于P(k+1-x),则需要继续比较S(x+1)是否等于P(0),真的只能这样比较么,当然不是,看KMP:假如在字符串S中S(x)-S(y)和S(z)-S(k)相同(此时S(x)-S(y)就是在字符串S(x)-S(k)中的最大长度的
原创
2020-08-14 16:58:16 ·
280 阅读 ·
2 评论