A6963 | 通配符匹配
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定一个文本串 $S$ 和一个模式串 $P$。
模式串 $P$ 中除了小写英文字母外,还可能包含两个特殊字符:
这两个特殊字符的匹配规则如下:
1.
2.
请你判断模式串 $P$ 是否能完全匹配文本串 $S$。
模式串 $P$ 中除了小写英文字母外,还可能包含两个特殊字符:
? 和 *。这两个特殊字符的匹配规则如下:
1.
?:可以匹配文本串中的任意单个字符。2.
*:可以匹配文本串中的任意字符序列(包括空序列)。请你判断模式串 $P$ 是否能完全匹配文本串 $S$。
输入格式
输入共两行。
第一行包含一个字符串 $S$(文本串),仅包含小写英文字母。
第二行包含一个字符串 $P$(模式串),包含小写英文字母、
第一行包含一个字符串 $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$
- 测试点 1-5:$|S|, |P| \le 10$
- 测试点 6-15:$|S|, |P| \le 200$
- 测试点 16-25:$|S|, |P| \le 2000$
数据范围
- $S$ 仅包含小写英文字母。
- $P$ 仅包含小写英文字母、
? 和 *。数据点分布:
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?