二分查找算法
2.在母串中查找子串出现到次数
3.查找第一个匹配子串位置,如果返回的是s1长度len1表示没有找到
在这里要提下KMP算法, KMP 匹配算法是由 "Knuth Morris Pratt" 提出的一种快速的模式匹配算法。
1.待解决的问题:假设P为给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这称为模式匹配问题。 (可以给出子串在T中的位置) (下文中提到的P和T分别为子串和目标串)
让我们先来看个例题:
T: t0 t1 t2 t3 .... tm-1 ... tn-1
P: p0 p1 p2 p3 .....pm-1
从T的最左边开始比较,使得 TK = PK,则匹配成功。
2.解决模式匹配问题的方案:
A:朴素的模式匹配算法(思路简单,但不够简便,时间长,有回溯):最简单和最直接的做法,用P中的字符依次与T中的字符进行比较,遇到不相等的字符,则可将P右移一个字符,重新进行比较,直到某次匹配成功或者到达P的最右字符移出T为止。
如:若P="aaaba", T="aaabbaaaba", 则匹配过程如下图