数据结构-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)

猜你喜欢

转载自blog.csdn.net/weixin_41732253/article/details/109547194
今日推荐