A94823.通配符匹配

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

这两个特殊字符的匹配规则如下:

  1. ?:可以匹配文本串中的任意单个字符
  2. *:可以匹配文本串中的任意字符序列(包括空序列)。

请你判断模式串 PP 是否能完全匹配文本串 SS

输入格式

输入共两行。
第一行包含一个字符串 SS(文本串),仅包含小写英文字母。
第二行包含一个字符串 PP(模式串),包含小写英文字母、?*

输出格式

如果匹配成功,输出 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%100\% 的数据:
    • 0S,P20000 \le |S|, |P| \le 2000
    • SS 仅包含小写英文字母。
    • PP 仅包含小写英文字母、?*

数据点分布:

  • 测试点 1-5:S,P10|S|, |P| \le 10
  • 测试点 6-15:S,P200|S|, |P| \le 200
  • 测试点 16-25:S,P2000|S|, |P| \le 2000
首页