![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 83
玛卡巴卡1020
这个作者很懒,什么都没留下…
展开
-
KMP基础(C++)
其中n为文本串长度,m为模式串长度,因为在匹配的过程中,根据前缀表不断调整匹配的位置,可以看出匹配的过程是O(n),之前还要单独生成next数组,时间复杂度是O(m)。如果len % (len - (next[len - 1] + 1)) == 0 ,则说明数组的长度正好可以被 (数组长度-最长相等前后缀的长度) 整除 ,说明该字符串有重复的子字符串。因为字符串s的最长相同前后缀的长度一定是不包含s本身,所以 最长相同前后缀长度必然是m * x,而且 n - m = 1,(这里如果不懂,看上面的推理)原创 2023-02-10 21:39:37 · 278 阅读 · 0 评论 -
栈和队列基础(C++版)
首先, 栈的顺序是先进后出如图所示:栈会提供push 、pop 等诸多接口,所有元素必须符合先进先出,所以栈不提供走访功能,也不提供迭代功能。不像是set或者map那样有迭代器iterator可以遍历所有元素C++中的stack是容器吗?栈和队列是C++ 中的两个数据结构。而栈通常在C++中并不是被归类为容器,他被归类为容器适配器(container adapter)原创 2023-02-07 15:22:41 · 198 阅读 · 2 评论