#D1032. 带通配符的字符串匹配

带通配符的字符串匹配

题目描述

给定一个字符串 ss 和一个字符模式 pp,请实现一个支持 ?* 的通配符匹配功能。

其中 ? 可以匹配任何单个字符,如 a?c 可以成功匹配 aacabc 等字符串,但不可匹配 acaaac 等字符串 。

* 可以匹配任意长度字符串(包括空字符串),如 a*c 可以成功匹配 acabdcabcaaac 等字符串,但不可匹配 acbcac 等字符串。

两个字符串完全匹配才算匹配成功。

输入格式

输入第一行为一个数字 nn,表示测试字符串与字符模式对数,n30n ≤ 30

后续 2n2n 行为每组匹配的 ssppss 非空,只包含从 aza\sim z 的小写字母。pp 非空,只包含从 aza\sim z 的小写字母,以及字符 ?*。字符串 sspp 的长度均小于 5050

输出格式

每一组匹配串匹配成功输出 yes,否则输出 no

3
abc
abc
abc
a*c
abc
a??c
aaaaaaabcde
a*bcd?
yes
yes
no
yes