A94823.通配符匹配
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个文本串 S 和一个模式串 P。
模式串 P 中除了小写英文字母外,还可能包含两个特殊字符:? 和 *。
这两个特殊字符的匹配规则如下:
?:可以匹配文本串中的任意单个字符。*:可以匹配文本串中的任意字符序列(包括空序列)。
请你判断模式串 P 是否能完全匹配文本串 S。
输入格式
输入共两行。
第一行包含一个字符串 S(文本串),仅包含小写英文字母。
第二行包含一个字符串 P(模式串),包含小写英文字母、? 和 *。
输出格式
如果匹配成功,输出 1;否则输出 0。
输入输出样例
输入#1
aa a
输出#1
0
输入#2
aa *
输出#2
1
输入#3
cb ?a
输出#3
0
输入#4
adceb *a*b
输出#4
1
说明/提示
样例解释与数据范围
样例解释
- 样例 #1:
a无法匹配aa,因为长度不同且没有通配符。 - 样例 #2:
*可以匹配任意序列,这里匹配了整个aa。 - 样例 #3:
?匹配了c,但模式串的第二个字符a无法匹配文本串的b。 - 样例 #4: 第一个
*匹配空串,第二个*匹配dce,整个模式串匹配adceb。
数据范围
- 对于 100% 的数据:
- 0≤∣S∣,∣P∣≤2000
- S 仅包含小写英文字母。
- P 仅包含小写英文字母、
?和*。
数据点分布:
- 测试点 1-5:∣S∣,∣P∣≤10
- 测试点 6-15:∣S∣,∣P∣≤200
- 测试点 16-25:∣S∣,∣P∣≤2000