c++ 关于KMP算法,请告诉来,谢了。该如何处理
c++ 关于KMP算法,请告诉来,谢了。
这几天研究串的KMP算法,不知怎么的就是不理解,关键指针不用返回的那块,请告诉教教..
------解决方案--------------------
看严蔚敏的视频吧。当年看了两天代码看的头大。后来再看严的视频后犹如醍醐灌顶啊。。。
不过现在又忘的差不多了。。。
------解决方案--------------------
KMP的算法的本质就是将移动量映射到KEY中的每个字符...
http://blog.****.net/ionllovfre/article/details/7401220
这是我当时弄KMP的时候写的一篇blog,希望能对LZ起到帮助作用..
------解决方案--------------------
算法这中东西,要边看,边思考(尽量用大脑模拟每个细致的过程),最后加上边动手。以前俺一个同学自学排序的时候(俺们不是计算机系的),常用的那几个排序算法,反反复复看了不下二十遍(开始隔两天看一遍),一边看,一边理解,一边用自己比较熟悉的各种不同的编程语言写,算起来每个算法应该至少重写了30遍,睡觉的时候,还时不时地去回忆一下,后来他就感觉好多了。当然排序算法算是很简单的了,在他的影响下,我也学习一些简单的算法,开始每次看书我感觉自己都能很好地理解,但是离开书本写代码的时候,总是有些细节地方出错,后来也是一发狠,就参考同学那般暴力搞定之。
我们宿舍一个同学,高等数学里面所有的公式都倒背如流,做普通题目的速度比我们就快多了。当然,理解是非常重要的,比如数学中那些公式,先统统自己推导或者证明一遍,然后记住,这样应付考试是很好的。
这是俺所知道的笨办法,未必适合楼主,仅供参考。
------解决方案--------------------
我也看了好几次 估计还没有理解KMP~
------解决方案--------------------
我对kmp倒是理解正常,但是到了AC多模匹配就比较难啃了。推荐一本书《柔性字符串匹配》,网上应该有。
------解决方案--------------------
的确,开始学数据结构时,理解这一算法会有一定的难度!不过严蔚敏的视频在这个算法上说的很清楚,看以在优酷上看到,我前两天也在回顾这个算法!!呵呵---视频应该是第十一个!!
------解决方案--------------------
KMP就是利用模式串的特点来实现不回溯下标的
------解决方案--------------------
当初理解的~现在看到楼主的这个题目有点忘了。。
------解决方案--------------------
去看算法导论里的讲解吧.
~
------解决方案--------------------
必须要学会推导,不能推导的学了也没用。
------解决方案--------------------
我也学过一些 KMP,楼主具体那里不理解呢?
KMP 算法不一定基于指针实现,你说的“关键指针不用返回的那块”,是什么意思?
另外,这里有个挺好的解释,不妨看看,
http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm#.22Partial_match.22_table_.28also_known_as_.22failure_function.22.29
------解决方案--------------------
边看算法边写代码,看视频多了也没用,不理解
这几天研究串的KMP算法,不知怎么的就是不理解,关键指针不用返回的那块,请告诉教教..
------解决方案--------------------
看严蔚敏的视频吧。当年看了两天代码看的头大。后来再看严的视频后犹如醍醐灌顶啊。。。
不过现在又忘的差不多了。。。
------解决方案--------------------
KMP的算法的本质就是将移动量映射到KEY中的每个字符...
http://blog.****.net/ionllovfre/article/details/7401220
这是我当时弄KMP的时候写的一篇blog,希望能对LZ起到帮助作用..
------解决方案--------------------
算法这中东西,要边看,边思考(尽量用大脑模拟每个细致的过程),最后加上边动手。以前俺一个同学自学排序的时候(俺们不是计算机系的),常用的那几个排序算法,反反复复看了不下二十遍(开始隔两天看一遍),一边看,一边理解,一边用自己比较熟悉的各种不同的编程语言写,算起来每个算法应该至少重写了30遍,睡觉的时候,还时不时地去回忆一下,后来他就感觉好多了。当然排序算法算是很简单的了,在他的影响下,我也学习一些简单的算法,开始每次看书我感觉自己都能很好地理解,但是离开书本写代码的时候,总是有些细节地方出错,后来也是一发狠,就参考同学那般暴力搞定之。
我们宿舍一个同学,高等数学里面所有的公式都倒背如流,做普通题目的速度比我们就快多了。当然,理解是非常重要的,比如数学中那些公式,先统统自己推导或者证明一遍,然后记住,这样应付考试是很好的。
这是俺所知道的笨办法,未必适合楼主,仅供参考。
------解决方案--------------------
我也看了好几次 估计还没有理解KMP~
------解决方案--------------------
我对kmp倒是理解正常,但是到了AC多模匹配就比较难啃了。推荐一本书《柔性字符串匹配》,网上应该有。
------解决方案--------------------
的确,开始学数据结构时,理解这一算法会有一定的难度!不过严蔚敏的视频在这个算法上说的很清楚,看以在优酷上看到,我前两天也在回顾这个算法!!呵呵---视频应该是第十一个!!
------解决方案--------------------
KMP就是利用模式串的特点来实现不回溯下标的
------解决方案--------------------
当初理解的~现在看到楼主的这个题目有点忘了。。
------解决方案--------------------
去看算法导论里的讲解吧.
~
------解决方案--------------------
必须要学会推导,不能推导的学了也没用。
------解决方案--------------------
我也学过一些 KMP,楼主具体那里不理解呢?
KMP 算法不一定基于指针实现,你说的“关键指针不用返回的那块”,是什么意思?
另外,这里有个挺好的解释,不妨看看,
http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm#.22Partial_match.22_table_.28also_known_as_.22failure_function.22.29
------解决方案--------------------
边看算法边写代码,看视频多了也没用,不理解