剑指offer52.正则表达式匹配

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36811967/article/details/87863956

请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配

参考leetcode10. 正则表达式匹配

# -*- coding:utf-8 -*-
class Solution:
    # s, pattern都是字符串
    def match(self, s, pattern):
        # write code here
        if pattern == '':
            return s == ''
        if len(pattern) > 1 and pattern[1] == '*':
            return self.match(s, pattern[2:]) or \
                   (s != '' and (s[0] == pattern[0] or pattern[0] == '.') and self.match(s[1:], pattern))
        else:
            return s != '' and (s[0] == pattern[0] or pattern[0] == '.') and self.match(s[1:], pattern[1:])

猜你喜欢

转载自blog.csdn.net/sinat_36811967/article/details/87863956