串 串 串(字符串):由零个或者多个字符组成的有限序列。 串值:双引号括起来的字符序列 串长:所包含的字符总数量 子串(substring) 子串序号(index) 串相等:长度相等且对应位置的字符也一样 串常量:只能读,不能写 串变量:可读可写 串在计算机中的存储方式 定长顺序存储表示 堆分配存储 块链存储(块的意思是每个结点存放不止一个字符) 串的模式匹配算法 模式匹配:子串在主串中的定位称为模式匹配或串匹配 Brute-Force模式匹配算法 匹配流程 代码 BF算法代码 执行的复杂度为O(m+n),最坏为O(m*n)。当遇到s="001",p="00000000001"的串的时候,就会遇到最坏情况 KMP模式匹配算法 改进点:每当一趟匹配出现字符不相等时,主串指示器不用回溯,而利用已经得到的部分匹配的结果,将模式匹配器向右尽可能滑动一段距离后在继续比较 匹配流程 代码 KMP算法代码 可以大大缩短匹配的次数 时间复杂度一定是O(m+n) 仅当模式与主串之间存在许多部分匹配的情况,才会比BF算法有明显的性能提升