美文网首页leetcode
leetcode 10. 正则表达式匹配 python

leetcode 10. 正则表达式匹配 python

作者: DaydayHoliday | 来源:发表于2019-04-11 13:34 被阅读0次

    记录一下

    class Solution(object):
        def isMatch(self, s, p):
            if s==p:
                return True
            if p=='':
                return False
            s_cur=0
            p_cur=0
            while True:
                if p_cur>=len(p) and s_cur<len(s):
                    return False
                if p_cur==len(p) and s_cur==len(s):
                    return True
                if p[p_cur]=='*':
                    return False
                if (p_cur==len(p)-1 or (p_cur+1<len(p) and p[p_cur+1]!='*')):
                    if s_cur>=len(s):
                        return False
                    if p[p_cur]=='.':
                        p_cur+=1
                        s_cur+=1
                        continue
                    if p[p_cur]!=s[s_cur]:
                        return False
                    p_cur+=1
                    s_cur+=1
                    continue
                if p_cur+1<len(p) and p[p_cur+1]=='*':
                    if self.isMatch(s[s_cur:],p[p_cur+2:]):
                        return True
                    while s_cur<len(s) and (p[p_cur] == '.' or p[p_cur] == s[s_cur]):
                        if self.isMatch(s[s_cur+1:],p[p_cur+2:]):
                            return True
                        s_cur+=1
                    return False
                
    

    相关文章

      网友评论

        本文标题:leetcode 10. 正则表达式匹配 python

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