10. 正则表达式匹配
Last updated
Last updated
给你一个字符串 s
和一个字符规律 p
,请你来实现一个支持 '.'
和 '*'
的正则表达式匹配。
'.'
匹配任意单个字符
'*'
匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 整个 字符串 s
的,而不是部分字符串。
示例 1:
示例 2:
示例 3:
提示:
1 <= s.length <= 20
1 <= p.length <= 20
s
只包含从 a-z
的小写字母。
p
只包含从 a-z
的小写字母,以及字符 .
和 *
。
保证每次出现字符 *
时,前面都匹配到有效的字符。
Go 中的数组(array)不支持动态大小,例如,[n][m]int
这种形式。
Go 种二维切片的声明与初始化方式。
Go 中的 int
和 bool
不能直接相互转换,需要借助判断或是函数实现转换。
记忆化搜索优化。
两套做法,特定针对这道题的 DP 方法和正则表达式匹配实现的一般方式。第二种很复杂,可以看看这个 了解一下。这里主要针对第一种方法给出题解。