描述
该题来自于力扣第44题
分析
类似于leetcode题解10,同样使用动态规划来解,定义dp[i][j]
为字符串s
的前i
位与字符串p
的前j
为匹配的结果,则dp[0][0]
表示两个空串的比较,自然为True
;对于i>=1
和j>=1
不难知道状态转移方程为
\[
dp[i][j] = \left\{
\begin{aligned} & dp[i-1][j-1] & p[j-1]=? \\
& dp[i-1][j] \quad \text{or} \quad
dp[i][j-1] & p[j-1]=* \\
& dp[i-1][j-1] \quad \text{and} \quad
s[i-1][j-1] & \text{others}
\end{aligned} \right.
\]
最后注意边界,主要是dp[0][j]
这种情况。
代码
python
1 | class Solution: |