POJ 1458 Common Subsequence (DP 动态规划)

来源:互联网 发布:轮毂数据怎么看 编辑:程序博客网 时间:2024/05/21 22:27
#include <stdio.h>#include <string.h>#define MAX_LEN 1000#define MAX(x, y) ( (x) > (y) ? (x) : (y) )char str1[MAX_LEN];char str2[MAX_LEN];//lenOfLCS[i][j]表示字符串str1的i个前缀和字符串str2的j个前缀的LCS的长度int lenOfLCS[MAX_LEN][MAX_LEN];//length of longest common subsequenceint main(){while (scanf("%s%s", &str1[1], &str2[1]) != EOF){int m = strlen(&str1[1]);int n = strlen(&str2[1]);int i, j;for (i = 0; i <= m; i++)for (j = 0; j <= n; j++)lenOfLCS[i][j] = 0;for (i = 1; i <= m; i++)for (j = 1; j <= n; j++)if (str1[i] == str2[j])lenOfLCS[i][j] = lenOfLCS[i - 1][j - 1] + 1;else lenOfLCS[i][j] = MAX(lenOfLCS[i - 1][j], lenOfLCS[i][j - 1]);printf("%d\n", lenOfLCS[m][n]);}return 0;}

0 0