关于字符串的匹配算法,经典的有两种:KMP和BM算法。
我们先看一般的比配算法的实现过程:源串s,要查找的目标串d
例如在源串 “Thisismynamesearchtext" 中查找”search“的过程。
一般过程如下:
Thisismynamesearchtext
search
开始对齐比较,如何不匹配,就把search往后移动,继续search第一个字母比较。
无论是KMP算法,还是BM算法,其优化的思路,都是利用已经匹配的部分的信息,来努力使目标串移动的距离尽可能的大。