零零散散学算法之再叙字符串匹配
正文
字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常会用到它。比如说,我们用vim打开一个文本文件,要在这个文件中查找某一个字符串时,我们只需在底行模式下输入/String即可;再比如,在linux终端中,我们要把当前目录下所有的c文件打印出来,那么这时候我们就会利用正则表达式来进行匹配操作(所有的c文件可表示为*.c),而不是挨个去找。
好了,书接正文。写本篇文章的目的有二:
其一:先前也写过字符串匹配的文章,不过那篇文章只说了字符串固定匹配以及KMP算法,没有对字符串动态匹配进行讲述。所以一直想写关于动态匹配的文章;
其二:对于一个算法爱好者,如一位仁兄所说:Say what you think and show your code!如若这样,岂不快哉!
第一章 固定串匹配
我为什么叫它固定串呢?我还是举个例子说明一下吧(没办法,语言表达能力不好啊)!假设有源字符串…superfcing…,我们想知道子串superfc是否在源串中出现过?此时不难看出子串是一个确定的