与正则匹配相同
class Solution(object):
def isMatch(self, s, p):
"""
:type s: str
:type p: str
:rtype: bool
"""
lp = len(p)
ls = len(s)
dp=[[0]*(lp+1) for i in range(ls+1)]
dp[0][0]=1
for i in range(lp):
if p[i]=='*' and dp[0][i] == 1:
dp[0][i+1] = 1
for i in range(ls):
for j in range(lp):
if p[j] == s[i] or p[j]=='?':
dp[i+1][j+1]=dp[i][j]
if p[j]=="*":
dp[i+1][j+1] = dp[i+1][j] or dp[i][j+1] or dp[i][j]
return dp[ls][lp] == 1

本文介绍了一种基于动态规划的正则表达式匹配算法,该算法能够处理包含特殊字符'*'和'?'的正则表达式,通过构建二维动态规划表来判断字符串是否与正则表达式匹配。
2711

被折叠的 条评论
为什么被折叠?



