ecjtu-summer training #5 C

来源:互联网 发布:mac人名中间的点怎么打 编辑:程序博客网 时间:2024/06/05 23:51

题目意思:

给两个字符串,求这两个字符串相同字符的个数。

解题思路:



#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 10010
int dp[MAXN][MAXN];
int main()
{
    char a[MAXN],b[MAXN];
    while(cin>>a>>b)
    {
        int i,j;
        int n=strlen(a),m=strlen(b);
        for(i=0; i<n; ++i)
            for(j=0; j<m; ++j)
                if(a[i]==b[j])
                    dp[i+1][j+1]=dp[i][j]+1;
                else
                    dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
        cout<<dp[n][m]<<endl;
    }
    return 0;
}
原创粉丝点击