美文网首页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