Skip to content

Latest commit

 

History

History
executable file
·
33 lines (31 loc) · 1.52 KB

File metadata and controls

executable file
·
33 lines (31 loc) · 1.52 KB

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

串的模式匹配算法

  • 模式匹配:子串在主串中的定位称为模式匹配或串匹配
  • Brute-Force模式匹配算法
    • 匹配流程 image
    • 代码 BF算法代码
    • 执行的复杂度为O(m+n),最坏为O(m*n)。当遇到s="001",p="00000000001"的串的时候,就会遇到最坏情况
  • KMP模式匹配算法
    • 改进点:每当一趟匹配出现字符不相等时,主串指示器不用回溯,而利用已经得到的部分匹配的结果,将模式匹配器向右尽可能滑动一段距离后在继续比较
    • 匹配流程 image
    • 代码 KMP算法代码
    • 可以大大缩短匹配的次数
    • 时间复杂度一定是O(m+n)
    • 仅当模式与主串之间存在许多部分匹配的情况,才会比BF算法有明显的性能提升