编程题

通配符匹配

给定一个字符串 s 和一个字符模式 p, 请实现一个支持'?'和'*'的通配符匹配功能。其中‘?’可以匹配任何单个字符, 如‘a?c’可以成功匹配‘aac’,‘abc’等字符串, 但不可匹配‘ac’,‘aaac’等字符串 。‘*’ 可以匹配任意长度字符串(包括空字符串) ,如‘a*c’可以成功匹配‘ac’,‘abdc’,‘abc’,‘aaac’等字符串, 但不可匹配‘acb’, ‘cac’等字符串。两个字符串完全匹配才算匹配成功。

输入

输入为一个数字 n 表示测试字符串与字符模式对数, 换行。 (n ≤ 30) 后续 2n 行为每组匹配的 s 与 p, 每行字符串后换行。 s 非空, 只包含从 a-z 的小写字母。 p 非空, 只包含从 a-z 的小写字母, 以及字符 ? 和 *。 字符串 s 和 p 的长度均小于 50

输出

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

样例输入

3

abc

abc

abc

a*c

abc

a??c

样例输出

yes

yes

no

查看答案
赣ICP备20007335号-2