串的定义
存储
顺序存储
链式存储
基本操作
串和线性表的区别
可以从数据结构的三要素展开论述
区别
相同
字符串模式匹配
朴素模式匹配算法
KMP算法
-
思想
-
性能:O(m+n)
-
重点掌握next数组的手算求法
求next数组例题:
next[1]和next[2]分别是0和1,
比如出现第6个字符不匹配时,模式串向后移动,直到部分能和主串匹配就停下来,如上图,因为?可能和b匹配,因此next[6]的值为 4.其他的值也可以自己手动算一下试试。
求出next数组后,如果遇到第一个字符不匹配,则特别要注意next[1]这种情况:
那么问题来了,比如考研复试某真题:KMP算法,什么情况下主指针需要向前移动?