串
串
- 串(字符串):由零个或者多个字符组成的有限序列。
- 串值:双引号括起来的字符序列
- 串长:所包含的字符总数量
- 子串(substring)
- 子串序号(index)
- 串相等:长度相等且对应位置的字符也一样
- 串常量:只能读,不能写
- 串变量:可读可写
- 串在计算机中的存储方式
- 定长顺序存储表示
- 堆分配存储
- 块链存储(块的意思是每个结点存放不止一个字符)
串的模式匹配算法
- 模式匹配:子串在主串中的定位称为模式匹配或串匹配
- Brute-Force模式匹配算法
- 匹配流程

- 代码
BF算法代码
- 执行的复杂度为O(m+n),最坏为O(m*n)。当遇到s=”001”,p=”00000000001”的串的时候,就会遇到最坏情况
- KMP模式匹配算法
- 改进点:每当一趟匹配出现字符不相等时,主串指示器不用回溯,而利用已经得到的部分匹配的结果,将模式匹配器向右尽可能滑动一段距离后在继续比较
- 匹配流程

- 代码
KMP算法代码
- 可以大大缩短匹配的次数
- 时间复杂度一定是O(m+n)
- 仅当模式与主串之间存在许多部分匹配的情况,才会比BF算法有明显的性能提升
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!