有人能清楚解释最长公共子序列和最长公共子串的递归解以及它们之间的区别吗?
答案 0 :(得分:0)
最长公共子序列是动态规划技术通常可以解决的经典问题。
字符串S,T的递归关系为:
/*Characters do not match*/
if(S[i]!=T[j])
return max(LCS(i+1, j, S, T), LCS(i, j+1, S, T));
else
return LCS(i+1, j+1, S, T) + 1;
在这种情况下,i
表示字符串S的索引,而字符串T的j
表示字符串。在任何状态(i, j)
处,都有可能出现以下情况:字符匹配或字符不匹配
类似地,这可以解决子字符串