精选力扣300+题目之动态规划

# 字符匹配类动态规划心得总结

它的题目特征其实特别明显,比如:

  • 输入是两个字符串,问是否通过一定的规则相匹配
  • 输入是两个字符串,问两个字符串是否存在包含被包含的关系
  • 输入是两个字符串,问一个字符串怎样通过一定规则转换成另一个字符串
  • 输入是两个字符串,问它们的共有部分

这类问题的难点在于问题的拆解上面,也就是如何找到当前问题和子问题的联系。

往往这类问题的状态比较好找,你可以先假设状态 **dp[i][j] 就是子问题str1(0...i) str2(0...j) 的状态。拆解问题主要思考 dp[i][j] 和子问题的状态dp[i - 1][j]dp[i - 1][j] 以及 dp[i - 1][j - 1] 的联系,**因为字符串会存在空串的情况,所以动态规划状态数组往往会多开一格。

当然,对于这类问题,如果你还是没有什么思路或者想法,我给你的建议是 画表格,我们结合实际题目一起来看看。

# Easy

# Medium

# Hard