摘要:
【前言】 选题仍然是源自课堂习题,是要设计一个含有通配符问号的KMP字符匹配算法。其实这个目标是非常容易达到的。但是,接着想到通配符星号时,就感到有些困难了。因为星号可以匹配的字符个数不是确定的,所以子串中含有星号时要多次扫描母串,每种情况都要逐一比对才行,现有的匹配算法显然达不到这样的目的。现在要设计一种算法,即能完成不含通配符的匹配问题,同时又能适应含通配符的匹配问题。【分析】 通配符共有两种,问号和星号。“?”表示一个任意字符,而“*”则表示任意个任意字符。 首先来想问号的处理,子串扫描到问号时,不管母串是什么字符我们都认为它们是匹配的就行了。就是在匹配条件中加一条,变成s[i]==t[ 阅读全文