==> 在上篇文章(【3】2 ) 中用的是其它的基本操作比如( 取子串、子串的对比),来实现定位操作!
==> 朴素模式匹配算法和上节的定位内容差不多,只不过这里不适用其它基本操作而是直接通过访问数组元素的方式来实现!
==> 第二个 if 判断句中的条件是为了解决 while 循环跳出是因为 S 超出了 主串的边界,而 j 指向还是字符(没有超出边界),这说明主串中没有足够的字符了,那就可以直接返回0 (即失败)。如下图:
课本代码中没有定义变量 k ,而是用了 i 和 j 之间的关系来处理! 两种方式是等效的!
这种情况下, i 是不需要 “走回头路” 的。
这种情况下, i 是要走 “ 回头路 ”的
***** 这种的语言是比较符合我自己个人习惯的! 其实在这个地方没有直接把课本上的算法思想贴出来的原因是:有人在学习算法的时候竟然会去背课文上给的算法思想,想一字不漏的背下来,这种学习方式是有问题的。应该在理解算法的前提下,用自己习惯的思维方式、表达方式把这个算法的思想和步骤用自己话来描述一遍!这样才更容易让自己的大脑记住!当然也不要背我给的这些东西,这种描述方式比较符合我的思维习惯而已!