字符串匹配算法

在实际工程中经常遇到这样的问题,在一起字符串里查找是否包含某个字符串,并且找到要找字符串所出现的位置。

让我们来举一个例子:

在上图中,字符串B是A的子串,B第一次在A中出现的位置下标是2(字符串的首位下标是0),所以返回 2

 字符串B在A中并不存在,所以返回 -1

 

常见的算法包括:BF(Brute Force,暴力检索)、RK(Robin-Karp,哈希检索)、KMP(教科书上最常见算法)、BM(Boyer Moore)、Sunday。

   1. BF(Brute Force,暴力检索)

   2. RK(Robin-Karp,哈希检索)

   3. KMP(Knuth-Morris-Pratt算法)

    kmp算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现

 

posted @ 2021-02-20 09:06  songguojun  阅读(116)  评论(0编辑  收藏  举报