最长公共子串和最长公共子序列类似,都是通过动态规划来解决的,不同点在于子序列可以不是连续的,而子串必须是连续的,所以这样来看的话其实子串更加的简单。
代码如下:
大概思路,代码都差不多,不同点就是假如字符不等时这里dp[i][j]设置为0,也就是说不管,而子序列的话还要通过Math.max(dp[i-1][j],dp[i][j-1])来判断
最长公共子串和最长公共子序列类似,都是通过动态规划来解决的,不同点在于子序列可以不是连续的,而子串必须是连续的,所以这样来看的话其实子串更加的简单。
代码如下:
大概思路,代码都差不多,不同点就是假如字符不等时这里dp[i][j]设置为0,也就是说不管,而子序列的话还要通过Math.max(dp[i-1][j],dp[i][j-1])来判断
相关文章: