给你一个字符串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"))
感谢观看!
|