POJ1458CommonSubsequence

来源:互联网 发布:char转int c语言 编辑:程序博客网 时间:2024/06/07 02:20
//POJ1458CommonSubsequence#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 1000 + 5;char s1[MAXN] = {0};char s2[MAXN] = {0};int main() {while(scanf("%s", s1) == 1) {scanf("%s", s2);const int len1 = strlen(s1);const int len2 = strlen(s2);        int Max[len1 + 1][len2 + 1];//两个下标分别代表第一个串的长度及第二个串的长度//状态为 Max(i, j)中的(i,j) for(int i = 0; i <= len1; i++) Max[i][0] = 0;for(int j = 0; j <= len2; j++) Max[0][j] = 0;//initialize    for(int i = 1; i <= len1; i++) {        for(int j = 1; j <= len2; j++) {        if(s1[i - 1] == s2[j - 1]) Max[i][j] = Max[i - 1][j - 1] + 1;        else{        Max[i][j] = max(Max[i][j - 1], Max[i - 1][j]);}}}printf("%d\n", Max[len1][len2]);}return 0;}