Advertisement

Leetcode 10号:正则表达式匹配

阅读量:
在这里插入图片描述

心路历程解析

这道题目存在一定难度,主要体现在需要综合考虑的条件较多,难以编写出简洁高效的代码;另外,题目中涉及的递推过程也较为复杂。参考了网络上的解法后,自行编写了一个尽可能清晰的AC解。

该题目属于动态规划类型:
状态定义为当前两个子串是否实现完全匹配
可选操作包括:s后移0或1位,p后移0、1或2位
返回结果表示当前子串是否达成匹配状态

注意的点:

1、该问题所涉及的递推关系式是按照从前到后的顺序进行构建的,而通常情况下,双字符串类问题更倾向于采用从后往前的分析方式。
2、尽管本题中包含多个条件判断语句,但其中大部分条件具有一定的相似性,可以通过适当的方式进行整合与简化。

解法:字符串动态规划

复制代码
    class Solution:
    def isMatch(self, s, p):
    
        @cache
        def dp(part_s, part_p):
            if part_p == '':  return part_s == ''

全部评论 (0)

还没有任何评论哟~