通配符匹配
问题简述
请实现支持'?'and'*'.的通配符模式匹配
'?' 可以匹配任何单个字符。
'*' 可以匹配任何字符序列(包括空序列)。
详细用例见链接
思路:动态规划
定义
dp(i, j)
表示s[:i]
与p[:j]
能否匹配;分情况讨论:
i==0, j==0
时,匹配;i==0, j!=0
时,只能当p[:j]
全为*
时才能匹配;i!=0, j==0
时,始终不匹配;s[i - 1] == p[j - 1] or p[j - 1] == '?'
时,需要dp(i-1,j-1)
匹配;p[j - 1] == '*'
时,需要dp(i-1,j)
或dp(i,j-1)
匹配;其他情况,不匹配
Last updated