数据结构-4.4串、数组和广义表
前言-数据结构
数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。
串的模式匹配
练习1-BF模式匹配
- 设目标串s=“eddede”,模式串t=“cdc”。s的长度为n(n 6),t的长度为m(m=3)。用指针i指示目标串s的当前比较字符位置,用指针j指示模式串t的当前比较字符位置,BF模式匹配过程如下所示。
练习2-KMP模式匹配
- 练习2:设目标串s=“aabaaab”,模 式串-*aaab”. s的长度为n(n=9)t的长度为m(m=5)用指针指示目标串s的当前比较字符位置,用指针指示模式串t的当前比较字符位置,KMP模式匹配过程如下所示。
对next的改进 nextvalue
总结
- 因为next[j] = k
- pj = pk(就是字符相等),所以nextvalue[j] = nextvalue[k] = next[k] ,pj != pk,所以nextvalue[j] = next[j] ,
例子:
-
因为next[4] = 1, a4 = a1 = 0, next[1] = 0, nextval[4] = next[1] = 0;
-
题目
-
答案
-
KMP的时间复杂度还是O(n+m)