最长公共子序列穷举法代c语言码
时间: 2023-10-26 15:09:04 浏览: 122
我可以为你提供一些关于最长公共子序列穷举法的信息和代码示例。首先,最长公共子序列是两个字符串最长的共同子序列,其中子序列不必在原字符串中连续。穷举法是一种简单的方法,通过枚举所有可能的子序列来查找最长的共同子序列。以下是一个示例C语言代码:
```
#include<stdio.h>
#include<string.h>
int max(int a, int b) {
return (a > b) ? a : b;
}
int lcs(char *X, char *Y, int m, int n) {
if (m == 0 || n == 0) {
return 0;
}
if (X[m - 1] == Y[n - 1]) {
return 1 + lcs(X, Y, m - 1, n - 1);
}
else {
return max(lcs(X, Y, m, n - 1), lcs(X, Y, m - 1, n));
}
}
int main() {
char X[] = "ABCD";
char Y[] = "ACDF";
int m = strlen(X);
int n = strlen(Y);
printf("The length of the longest common subsequence is %d", lcs(X, Y, m, n));
return 0;
}
```
请注意,此示例代码仅适用于字符串类型的序列。如需了解更多信息, 可以参考以下链接:https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/
阅读全文