首页 > 试题广场 >

手写代码:LCS问题

#include<bits/stdc++.h>
using namespace std;
char s1[3001],s2[3001];
int f[3001][3001];
int main()
{
    int n,i,j;
    scanf("%s",s1+1);
    scanf("%s",s2+1); 
    int l1=strlen(s1+1);
    int l2=strlen(s2+1);
    for(i=1;i<=l1;i++)
    {
        for(j=1;j<=l2;j++)
        {
            if(s1[i]==s2[j])
                f[i][j]=f[i-1][j-1]+1;
            else
                f[i][j]=max(f[i-1][j],f[i][j-1]);
        }
    }
    printf("%d",f[l1][l2]);
    return 0;
}

拿好不谢
编辑于 2020-10-16 16:54:28 回复(0)