下⾯最长公共⼦序列程序中,横线处应该填⼊的是( )。
#define MAX(A, B) (((A) > (B)) ? (A) : (B))
#define MIN(A, B) (((A) < (B)) ? (A) : (B))
int dp[MAX_L + 1][MAX_L + 1];
int LCS(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(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