题目
思路
1. 都是 DP 之后打印路径. 打印路径的必要信息在 DP 过程中被记录
2. 第一题. 使用向量记录第 i 个位置上有几个可选单词, 最后用 DFS 摘取
3. 第二题. dp[i][j] 表示 string[i...j] 之间形成合法序列需要添加的最少的括号数, choose[i][j] 则表示这个区间在哪切割最合适.
当区间不需要切割时, choose[i][j] 为 0, 否则 choose[i][j] 为切割位置
利用 choose 递归打印路径那一段, 非常经典