串,字符串。
给定两个串:一个主串S,一个串T。S若否包含T,T是S的子串,即匹配;若S不包含T,模式匹配失败,T不是S的字串。所以串的匹配,简单理解为,T是不是S的字串,或者S是否包含T。
串的匹配算法有两种:
- BF算法
- RK算法
BF算法
暴风算法?暴力比较。
假设有两串 S [ abbacdbbbba ] T [ cdbb ]
我们来演示一边匹配过程
第一次匹配:

位置i = 1 时,S[1] != T[1], T 后移一位,从S[2]再开始匹配
第二次匹配:
现在从S[2]开始匹配

- S[2] == T[1]
- S[3] == T[2]
- S[4] != T[3], 说明从S[2]开始后面T个长度的"cdcd"不是匹配的结果 , T再次后移,从比较S[3]开始匹配
第三次匹配
现在从S[3]开始匹配

- S[3]!=T[1],所以T再次后移,从S[4]开始匹配
第四次匹配
现在从S[4]开始匹配

- S[4] == T[1]
- S[5] == T[2]
- S[6] == T[3]
- S[7] == T[4],
从S[4]开始到S[7] 与T匹配成功,结束
BF算法总结
如其名,T与S一位一位的暴力匹配比较,不对,立马换S的下一个字符重新开始一位一位的匹配比较,直到匹配成功或者字符比较完结束。