测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A6963. 通配符匹配

编程题 普及+/提高

题目描述

给定一个文本串 $S$ 和一个模式串 $P$。
模式串 $P$ 中除了小写英文字母外,还可能包含两个特殊字符:?*

这两个特殊字符的匹配规则如下:
1. ?:可以匹配文本串中的**任意单个字符**。
2. *:可以匹配文本串中的**任意字符序列**(包括空序列)。

请你判断模式串 $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 \le |S|, |P| \le 2000$
- $S$ 仅包含小写英文字母。
- $P$ 仅包含小写英文字母、?*

**数据点分布:**
- 测试点 1-5:$|S|, |P| \le 10$
- 测试点 6-15:$|S|, |P| \le 200$
- 测试点 16-25:$|S|, |P| \le 2000$
上一题 去做题 下一题