下面最长公共子序列(LCS)程序中,横线处应填入:
int LCS(char str1[], char str2[]) {
// ...
for (int i = 0; i < len1; i++)
for (int j = 0; j < len2; j++)
if (str1[i] == str2[j])
dp[i+1][j+1] = dp[i][j] + 1;
else
________; // 在此处填入选项
return dp[len1][len2];
}
- A. dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j]
- B. dp[i+1][j+1] = MIN(dp[i][j+1], dp[i+1][j])
- C. dp[i+1][j+1] = MAX(dp[i][j+1], dp[i+1][j])
- D. dp[i+1][j+1] = MAX(dp[i][j+1], dp[i+1][j]) + 1
正确答案:C