当前位置: 代码迷 >> C语言 >> kmp算法中不明白的地方
  详细解决方案

kmp算法中不明白的地方

热度:253   发布时间:2007-05-13 19:59:00.0
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
这里进行比较吧



搜索更多相关的解决方案: kmp  算法  

----------------解决方案--------------------------------------------------------
回复:(guosheng1987)kmp算法中不明白的地方

自己顶


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
学习…………

----------------解决方案--------------------------------------------------------
以下是引用guosheng1987在2007-5-13 19:59:00的发言:

算法主要是处理不回溯,
比较主串和模式串中前面相同的部分,
然后单独处理模式串,看模式串中有无重复的 ,

记录下 处理模式串中重复的字符
比如子串和模式串中是
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 A B A B X Y Z...
A B A B A B C

还有第一种情况呢,

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
这里进行比较吧
这个是对的




----------------解决方案--------------------------------------------------------

  相关解决方案