三个月算法进阶--day55
目录
正则匹配
动态规划问题
python |=
记录
leetcode剑指offer第49题正则表达式匹配
class Solution:
def isMatch(self, s: str, p: str) -> bool:
m = len(s)
n = len(p)
ans = [[False] * (n + 1) for _ in range(m+1)]
for i in range(m+1):
for j in range(n+1):
if j == 0:
ans[i][j] = i == 0
else:
if p[j-1] != "*":
if i > 0 and (s[i-1] == p[j-1] or p[j-1] == '.'):
ans[i][j] = ans[i-1][j-1]
else:
if j >= 2:
ans[i][j] |= ans[i][j-2]
if i > 0 and j >= 2 and (s[i-1] == p[j-2] or p[j-2] == '.'):
ans[i][j] |= ans[i-1][j]
return ans[m][n]