實(shí)現(xiàn)支持'.'和'*'的正則表達(dá)式匹配。
'.'匹配任意一個字母。
'*'匹配零個或者多個前面的元素巡验。
匹配應(yīng)該覆蓋整個輸入字符串廓旬,而不僅僅是一部分哼审。
需要實(shí)現(xiàn)的函數(shù)是:bool isMatch(const char *s, const char *p)
您在真實(shí)的面試中是否遇到過這個題? Yes
樣例
isMatch("aa","a") → false
isMatch("aa","aa") → true
isMatch("aaa","aa") → false
isMatch("aa", "a*") → true
isMatch("aa", ".*") → true
isMatch("ab", ".*") → true
isMatch("aab", "cab") → true
Python版:
import re
class Solution:
"""
@param s: A string
@param p: A string includes "." and "*"
@return: A boolean
"""
def isMatch(self, s, p):
try:
p = re.compile(p)
r = p.findall(s)
if r[0] == s and (len(r)==1 or (len(r)==2 and r[1]=='')):
return True
else:
return False
except:
return False