10. 正则表达式匹配
题目#
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。
示例 1:
示例 2:
示例 3:
示例 4:
示例 5:
提示:
0 <= s.length <= 200 <= p.length <= 30s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符.和*。- 保证每次出现字符
*时,前面都匹配到有效的字符
思路#
最开始我一看是实现正则表达式(的一个子集)的引擎,瞬间就想起了该构造一个状态机,但看了看题解才发现大家都是用的动态规划,于是也是用的动态规划解题。
后面大概会用有限状态自动机来再实现一遍。