美文网首页
10.leetcode题目讲解(Python):正则表达式匹配

10.leetcode题目讲解(Python):正则表达式匹配

作者: 夏山闻汐 | 来源:发表于2018-08-16 18:55 被阅读74次

题目:


题目

这道题主要应用递归的思路来进行匹配,值得注意的是,在python里 and 操作的优先级是大于 or的,对递归不熟悉的朋友,不妨单步调试一下:

class Solution:
    def isMatch(self, s, p):
        """
        :type s: str
        :type p: str
        :rtype: bool
        """
        in_str = s
        pt = p

        if not pt:
            return not in_str

        first_match = bool(in_str) and pt[0] in {in_str[0], '.'}

        if len(pt) >= 2 and pt[1] == '*':
            return (self.isMatch(in_str, pt[2:])
                    or first_match and self.isMatch(in_str[1:], pt))
        else:
            return first_match and self.isMatch(in_str[1:], pt[1:])


s = Solution()
print(s.isMatch("ab", "c*ab"))

ps:如果您有好的建议,欢迎交流 :-D,也欢迎访问我的个人博客:tundrazone.com

相关文章

网友评论

      本文标题:10.leetcode题目讲解(Python):正则表达式匹配

      本文链接:https://www.haomeiwen.com/subject/gowobftx.html