kmp算法中不明白的地方
算法主要是处理不回溯,
比较主串和模式串中前面相同的部分,
然后单独处理模式串,看模式串中有无重复的 ,
记录下 处理模式串中重复的字符
比如子串和模式串中是
A B C D A B C D E E F....
A B C D A B C D G
模式串中
重复的部分就是 A B C D
那么下一次的比较就是
A B C D A B C D E E F....
A B C D A B C D G
又比如说
A B C C A B C D E E F....
A B C C A B C G
模式串中
重复的部分是A B C
那么下一次的比较是
A B C C A B C D E E F....
A B C C A B C G
不知道我上面说的是不是对的呢.
象这两个串的比较呢,
此处模式串的移动位置呢,这里 怎么确定
A B A B A B X Y Z...
A B A B A B C
重复的部分有 A B A B 和 A B
还有第一种情况呢,
A B C D E F G K......
A B C D E F H H
这里应该跳到
A B C D E F G K......
A B C D E F H H
这里进行比较吧