String 为什么多个字符串的最长公共子序列是NP难的?
我很难理解为什么多个字符串(k>2)的最长公共子序列问题是NP难的。我知道长度为l1,l2的两个字符串的LCS问题可以在O(l1*l2)时间内解决。我的问题是为什么我们不能一次找到两个字符串的LCS,例如: LCS(abcd,ad,abc)=LCS(LCS(abcd,ad),abc)=LCS(ad,abc)=aString 为什么多个字符串的最长公共子序列是NP难的?,string,algorithm,time-complexity,np,String,Algorithm,Time Complexity,Np,我很难理解为什么多个字符串(k>2)的最长公共子序列问题是NP难的。我知道长度为l1,l2的两个字符串的LCS问题可以在O(l1*l2)时间内解决。我的问题是为什么我们不能一次找到两个字符串的LCS,例如: LCS(abcd,ad,abc)=LCS(LCS(abcd,ad),abc)=LCS(ad,abc)=a 对于k个字符串,此算法将采用O(k*Max_length^2)。为什么这是错误的?LCS(x,y,z)=LCS(x,LCS(y,z))通常是不正确的。例如: LCS(bb,AAAB,bb
对于k个字符串,此算法将采用O(k*Max_length^2)。为什么这是错误的?LCS(x,y,z)=LCS(x,LCS(y,z))通常是不正确的。例如: LCS(bb,AAAB,bbaaa)=bb LCS(bb,LCS(AAAB,bbaaa))=LCS(bb,aaa)≠ bb
你的第一个等号错了:LCS(eeeabcd,eeead,abc)!=LCS(LCS(eeeabcd,eeead),abc)对于instanceLCS(eeeabcd,eeead)=eeead,LCS(eeead,abc)=a,哪个是正确的?