leetcode python 010
Posted 蚂蚁不在线
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode python 010相关的知识,希望对你有一定的参考价值。
#实现正则表达式匹配并支持‘.‘和‘*‘。
#‘‘匹配任何单个字符。
#‘*‘匹配前面元素的零个或多个。
#匹配应覆盖整个输入字符串(非部分)。
##Some examples:
##isMatch("aa","a") → false
##isMatch("aa","aa") → true
##isMatch("aaa","aa") → false
##isMatch("aa", "a*") → true
##isMatch("aa", ".*") → true
##isMatch("ab", ".*") → true
##isMatch("aab", "c*a*b") → true
def ismatch(s,re):
l=[]
for k in range(len(re)):
if re[k]==‘*‘:
l.append(k)
re=‘‘.join(re.split(‘*‘))
for i in range(len(l)):
l[i]=l[i]-i-1
print(re)
print(l)
flg=0
for i in range(len(s)):
## *退出
while flg in l and s[i]!=re[flg] and re[flg]!=‘.‘:
flg+=1
if flg==len(re):
return False,‘re too short‘
if flg not in l:
if s[i]==re[flg] or re[flg]==‘.‘:
flg+=1
else:
return False,‘no *‘
if i==len(s)-1:
if flg==len(re):
return True,‘perfect‘
else:
return False,‘re too long‘
print(ismatch("aaaaab", "c*a*."))
以上是关于leetcode python 010的主要内容,如果未能解决你的问题,请参考以下文章
leetcode刷题17.相交链表——Java&python版
LeetCode——010 Regular Expression Matching