单选题

下面最长公共子序列程序中,横线处应该填入的是(    )。

#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

赣ICP备20007335号-2