![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 71
每天学习一点点算法
Mango's Louvre
Mango:珍惜每一天敲代码的机会
展开
-
KMP算法对next数组的应用
KMP的话,主串中的i是不会回溯,模式串中的j回溯也不会回溯到第1个位置。不需要让i回溯到之前的位置重新匹配,只需要找到在P串前5个字符中第一个位置的前缀子串和最后一个位置的后缀子串相等并且串长最大的那一对子串,让j指向前缀子串最后一个字符的下一个位置3,和i所指向的6进行比较。这个时候就需要next数组的建立了,next[6]存储的就是前5个字符组成的字符串中的第一个位置的前缀子串和最后一个位置的后缀子串相等并且串长最大的那一对子串的最后一个字符的下一个位置,也就是3,也就是和P串中第3个位置匹配.原创 2024-06-24 22:51:59 · 244 阅读 · 0 评论 -
字典树的用法
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).前缀树的特点是,根节点为空,为它添加子节点时,以字母为键,子节点可以指定出现次数。对于每个提问,给出以该字符串为前缀的单词的数量.原创 2024-06-24 22:10:09 · 213 阅读 · 0 评论 -
优秀博客推荐:各种数据结构与算法知识入门经典
贪心算法: 作者:贪心算法: 作者:递归和分治: 作者: 图论。原创 2024-06-24 21:58:38 · 249 阅读 · 0 评论 -
indexOf实现引申出来的各种字符串匹配算法
可以用于字符串与数组中。对于大字符集的文字,我们需要改变坏字符表>的使用思路,用字典来保存模式串中的字符的跳转步数,对于在字典中没有查到的字符,说明其不在模式串中,目标串当前字符直接滑动patlen个字符。对于进阶的单模式匹配算法而言,子串(前缀/后缀)的自包含,是至关重要的概念,是加速模式匹配效率的金钥匙,而将其发扬光大的无疑是KMP算法,BM算法使用后缀自包含,从>后向前匹配模式串的灵感,也源于此,只有透彻理解KMP算法,才可能透彻理解BM算法。有两个字符串,长的称之为目标串,短的一般叫模式串。原创 2024-06-24 21:43:43 · 736 阅读 · 0 评论