Menu
CoddyTech

Regular Expression Matching

给定一个字符串 s 和一个模式 p。在模式中,字母匹配相同的字母,点 . 匹配任意一个字母,星号 * 表示它前面的元素(字母或点)出现零次或多次。如果模式与整个 s 匹配,则返回 true,否则返回 false。

函数

isMatch(s: string, p: string) → boolean
sstring
要匹配的字符串,只包含小写字母
pstring
字母、点和星号组成的模式
返回值boolean
如果 p 与 s 的所有内容都匹配,则为 true,否则为 false

约束条件

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • s 只包含小写英文字母。
  • p 只包含小写英文字母、. 和 *。
  • 每个 * 前面都是字母或 .,所以 p 永远不会以 * 开头,也不会连续出现两个星号。

示例

输入
s = "moon"p = "mo*n"
输出
true
解释
o*会匹配两个字母 o,所以 m、o* 和 n 正好拼成 moon。
challenge icon

进阶

你也能支持 + 吗?它表示同一个表格中前面的元素可以出现一次或多次。

重置代码
def isMatch(s, p):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "moon"
p = "mo*n"

预期输出

true