#4854. 通配符匹配

通配符匹配

题目描述

给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 '?' 和 '*' 匹配规则的通配符匹配:

  • '?' 可以匹配任何单个字符。
  • '*' 可以匹配任意字符序列(包括空字符序列)。

判定匹配成功的充要条件是:字符模式必须能够 完全匹配 输入字符串(而不是部分匹配)。

输入格式

第一行一个字符串 ss

第二行一个字符串 pp

输出格式

字符串 pp 能完全匹配 ss 输出 truetrue,否则输出 falsefalse

示例 1:

aa
a
false

解释: "a" 无法匹配 "aa" 整个字符串。

示例 2:

aa
*
true

解释: '*' 可以匹配任意字符串。

示例 3:

cb
?a
false

解释: '?' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。

提示:

  • 0<=s.length,p.length<=20000 <= s.length, p.length <= 2000
  • ss 仅由小写英文字母组成
  • pp 仅由小写英文字母、?'?''*' 组成

SOURCE

通配符匹配