字符串匹配:一个模式p,p是个字符串,长度为m;一个文本T,T的长度为n; 偏移量为s,s的范围为(0,n-m); 我们要做的就是找到所有的s。
其实问题也等价为,找到所有的s,使得p(m)是T(s+m)的后缀。
常用思路:朴素字符串匹配(无预处理阶段,仅有匹配阶段),RK算法(预处理阶段,匹配阶段),自动机算法(预处理阶段,匹配阶段),
KMP算法(预处理阶段,匹配阶段)。
它们的时间复杂度:预处理阶段 +匹配阶段
重要概念:前缀,后缀,后缀重叠定理
有限字符串
朴素字符串匹配算法,比较朴素,就是一点一点挪。没有利用每次挪动失败的信息。浪费了呀啊。
接下来三种,则均有利用到前面失败时的信息,记录下来,辅助指导后面的匹配。
本文详细介绍了字符串匹配的基本概念、常见算法及其在实际场景中的应用,包括朴素字符串匹配、RK算法、自动机算法和KMP算法。重点讨论了算法的时间复杂度、重要概念如前缀、后缀及后缀重叠定理,并通过实例展示了如何优化匹配过程。
2183

被折叠的 条评论
为什么被折叠?



