正则表达式匹配(python)

给你一个字符串s和字符串规律p,请你来实现一个支持’.‘和’'的正则表达式匹配。
‘.’:匹配任意字符
'
’:匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 整个字符串s的,而不是部分字符串。
示例1:
输入:s=“aa” p=“a”
输出:false
解释:“a“ 无法匹配"aa"整个字符串。
示例2:
输入:s=“aa” p=“a*”
输出:ture
解释:因为 '.*'匹配零个或多个前面的那一个元素,在这里前面的元素就是‘a’。因此"aa"可被视为‘a’重复了一次。
python代码如下:

class Solution:
    def isMatch(self,s: str, p: str)->bool:
        if len(p)==0:
            return len(s)==0
        head_match=len(s)>0 and (s[0]==p[0]or p[0]=='.')
        if len(p)>1 and p[1]=='*':
            if head_match and self.isMatch(s[1:],p):
                return True
            return self.isMatch(s,p[2:])
        else:
            if not head_match:
                return False
            return self.isMatch(s[1:],p[1:])
s=Solution()
print(s.isMatch(s="aa",p="a"))

感谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值