class Solution:
def isMatch(self, s: str, p: str) -> bool:
dp = [[False for _ in range(len(s)+1)]for _ in range(len(p)+1)]
string = '#'+s
patten = '#'+p
dp[0][0] = True
for i in range(len(string)):
for j in range(1,len(patten)):
if i == 0:
if j>1 and patten[j]=='*':
dp[j][i] = dp[j-2][i]
elif string[i] == patten[j] or patten[j] == '.':
dp[j][i] = dp[j-1][i-1]
elif patten[j] == '*':
if string[i]==patten[j-1] or patten[j-1]=='.':
dp[j][i] = dp[j][i-1] or dp[j-2][i]
else:
dp[j][i] = dp[j-2][i]
return dp[-1][-1]
正则表达式匹配
最新推荐文章于 2024-11-15 16:00:56 发布