392.判断子序列
等同于 LCS 问题,因为是判断 s 是否存在于 t,因此遍历s的每个字符,然后遍历 t 的每个位置,如果对于 s[i], t[j] 而言,二者相同,那么说明两者匹配长度增加了,否则仍然保留上一轮的匹配长度,最后当遍历到 [i, j] index pair 是二个input string 长度的时候,即得到了最长匹配长度,看这个长度是否是s.length
115.不同的子序列
跟上题差不多,这个系列的代码都有很多共同特点,当然毕竟是不同的题目,也是稍有不同的,OK不多说废话了。
这道题目是找有多少个,而不是存在即可,因此dp[i][j]要放字串的匹配数量,也就是 t[0, j] 里有多少个 s[0, i],看 description 也知道,有匹配多次的情况,所以当 t[j] === s[j] 的时候,不光要考虑到 dp[i - 1][j - 1]的情况,还要考虑到 dp[i - 1][j]