Leetcode第10题:
求解思路:
考虑到本题具有最优子结构的性质,故而可以考虑使用动态规划的方法求解。
动态规划问题求解需要考虑:
一、状态转移方程
二、动态规划的边界条件
用 f[i][j] 表示s的前i个字符与p的前j个字符匹配。
本题在求解状态转移方程时需要考虑一下三种情况:
1、p的最后一个字符是普通小写字母;
2、p的最后一个字符是“.”;
3、p的最后一个字符是“*”;
显然1和2情况的状态转移方程很容易得出,只需要考虑s[i]是否与p[j]匹配(s[i] = p[j] 或者 p[j] = “.”)。
第2种情况是难点:
https://leetcode-cn.com/problems/regular-expression-matching/solution/zheng-ze-biao-da-shi-pi-pei-by-leetcode-solution/