数据结构
文章平均质量分 82
2301_79799653
这个作者很懒,什么都没留下…
展开
-
KMP算法中next数组前后缀证明
想要知道具体如何以写出简单易懂的求解next数组的代码,或者想更容易理解网上的next数组源码,请点链接。,很显然,如果不是从第一个开始的话,那当我们跳的时候是不能确保模式串的第一个字符和主串是否匹配的。,从而来找到正确的跳跃的的位置时候是不能确保模式串的。当模式串的某个字符与主串不匹配时,那我们就要去。确保前缀的开头是第一个模式串中的第一个字符。开始匹配的位置与前后缀之间的关系。我们在用这个办法的前提是:要。在跳跃到正确的位置后,我们要。,在能保证下一步的正常进行。原创 2024-04-14 00:27:26 · 528 阅读 · 0 评论 -
KMP算法中关于next数组代码小白式解析
不过我们发现第三个字符‘b’前面的俩个字符是一模一样的,而我们是在第三个字符才发现不匹配的,说明前俩个字符是与主串匹配的,而又因为前两个字符是一样的,那我们就可以让模式串匹配的起点向下一个如下图——这样的话,我们就省下了一次不必要的无效的匹配过程,如下图。在源码中,当所比较的前缀跟后缀不一样时,让else中的k=next[k];我们把next[0]前面加上-1,将上面所得到的数据整体向后移一位,去掉最后一个数,就得到了一次模式串的起点索要移动的次数——这就是我们所要KMP算法中next数组的值(如图)。原创 2024-04-12 21:24:09 · 844 阅读 · 0 评论