人工智能/模式识别/机器学习精华专题机器学习和人工智能入门大数据,机器学习,人工智能

正则表达式匹配

2018-05-14  本文已影响10人  不爱去冒险的少年y

正则表达式匹配

给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.'和'*'的正则表达式匹配。

'.' 匹配任意单个字符。

'*' 匹配零个或多个前面的元素。

匹配应该覆盖整个字符串 (s) ,而不是部分字符串。

说明:

s可能为空,且只包含从a-z的小写字母。

p可能为空,且只包含从a-z的小写字母,以及字符.和*。

示例 1:

输入:s = "aa"p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。

示例 2:

输入:s = "aa"p = "a*"输出:true解释:'*' 代表可匹配零个或多个前面的元素, 即可以匹配 'a' 。因此, 重复 'a' 一次, 字符串可变为 "aa"。

示例 3:

输入:s = "ab"p = ".*"输出:true解释:".*" 表示可匹配零个或多个('*')任意字符('.')。

示例 4:

输入:s = "aab"p = "c*a*b"输出:true解释:'c' 可以不被重复, 'a' 可以被重复一次。因此可以匹配字符串 "aab"。

示例 5:

输入:s = "mississippi"p = "mis*is*p*."输出:false

import re

class Solution:

    def isMatch(self, s, p):

        """

        :type s: str

        :type p: str

        :rtype: bool

        """

        pat = re.compile(p+'$')

        result = pat.match(s)

        if result==None:

            return False

        else:

            return True

运行效率
上一篇下一篇

猜你喜欢

热点阅读