poj_1458 Common Subsequence(最长公共子序列)

来源:互联网 发布:男尊女卑 日本 知乎 编辑:程序博客网 时间:2024/06/15 08:58

【题目】

点击这里

【思路】

经典的LCS问题,动态规划即可,状态转移方程:


【代码】

#include<stdio.h>#include<string.h>#define size 220#define max(x,y) x>y? x:yint main(){    char s[size],t[size];    int i,j,a[size][size];    for (i=0;i<size;i++) {a[i][0]=0; a[0][i]=0;}    while (scanf("%s",s)!=EOF)    {        scanf("%s",t);        int sLen=strlen(s), tLen=strlen(t);        for (i=1;i<=sLen;i++)            for (j=1;j<=tLen;j++)            if (s[i-1]==t[j-1]) a[i][j]=a[i-1][j-1]+1; else a[i][j]=max(a[i-1][j],a[i][j-1]);        printf("%d\n",a[sLen][tLen]);    }    return 0;}

1 0
原创粉丝点击