正则表达式匹配

动态规划

正则表达式匹配
正则表达式匹配
正则表达式匹配
正则表达式匹配

最后来个归纳:

如果 p.charAt(j) == s.charAt(i) : dp[i][j] = dp[i-1][j-1];
如果 p.charAt(j) == ‘.’ : dp[i][j] = dp[i-1][j-1];
如果 p.charAt(j) == '’:
如果 p.charAt(j-1) != s.charAt(i) : dp[i][j] = dp[i][j-2] //in this case, a
only counts as empty
如果 p.charAt(j-1) == s.charAt(i) or p.charAt(j-1) == ‘.’:

dp[i][j] = dp[i-1][j] //in this case, a* counts as multiple a
or dp[i][j] = dp[i][j-1] // in this case, a* counts as single a
or dp[i][j] = dp[i][j-2] // in this case, a* counts as empty