📜  门| GATE-CS-2014-(Set-2) |第 47 题

📅  最后修改于: 2021-09-24 05:32:37             🧑  作者: Mango

考虑两个字符串A = “qpqrr” 和 B = “pqprqrp”。设 x 是 A 和 B 之间最长公共子序列(不一定是连续的)的长度,让 y 是 A 和 B 之间最长公共子序列的数量。那么 x + 10y = ___。
(一) 33
(乙) 23
(三) 43
(四) 34答案: (D)
说明: //LCS的长度为4。长度为4的LCS有3个“qprr”、“pqrr”和qpqr

子序列是可以通过从另一个序列中选择零个或多个元素而从另一个序列导出的序列,而不会改变其余元素的顺序。子序列不必是连续的。由于给定字符串A = “qpqrr” 和 B = “pqprqrp” 的长度非常小,我们不需要构建 5×7 矩阵并使用动态规划求解。相反,我们可以通过蛮力手动解决它。我们将首先检查是否存在长度为 5 的子序列,因为 min_length(A,B) = 5。

由于没有子序列,我们现在将检查长度为 4。“qprr”、“pqrr”和“qpqr”在两个字符串都是通用的。

X = 4 和 Y = 3

X + 10Y = 34

此解决方案由Pranjul Ahuja 提供
这个问题的测验