第44题:通配符匹配
题目描述
给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。
'?' 可以匹配任何单个字符。
'*' 可以匹配任意字符串(包括空字符串)。
两个字符串完全匹配才算匹配成功。
说明:
s 可能为空,且只包含从 a-z 的小写字母。
p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。
好像之前做过一个类似的题目呢~[思考]
【方法1】动态规划(DP)
动态规划的一般解法:
- 创建DP表,它可能是一维的,也可能是二维三维的
- 确定状态转移方程
- 确定边界条件
- 开始
对这道题,我们已经有过i相关经验了,所以我这里只贴官方给出的状态转移方程(怎么可能是推出来的~[捂脸]):
好家伙,我TM直接好家伙[奸笑]
【方法2】贪心算法
贪心算法我们也接触过了。
这里的贪心肯定是指对 星号“*” 的贪心搜索。
然而后面的内容我就不太理解了,对不起[流泪]
此外,官方还提到了 “AC自动机” 这个东西,但是这个东西过于复杂,那我就直接告辞~[捂脸]
如果以上内容有误,希望神通广大的网友能不吝赐教[委屈],直接骂我也可以啊[捂脸]
[来看我][来看我][来看我]