在A串中寻找B串.
一般的寻找子字符串的算法复杂度是O(m*n), KMP字符串匹配算法的时间复杂度仅为: O(m+n), 速度惊人.
它与C/C++语言中的strstr()函数的实现应该是一致的,不过在C/C++它用汇编实现了这些代码,估计string类的string::substr也是这样实现的。
这个算法的实现部分Matrix67大牛有详细的介绍,.不再赘述. 下面贴出实现代码:
在A串中寻找B串.
一般的寻找子字符串的算法复杂度是O(m*n), KMP字符串匹配算法的时间复杂度仅为: O(m+n), 速度惊人.
它与C/C++语言中的strstr()函数的实现应该是一致的,不过在C/C++它用汇编实现了这些代码,估计string类的string::substr也是这样实现的。
这个算法的实现部分Matrix67大牛有详细的介绍,.不再赘述. 下面贴出实现代码: