首页 > 其他 > 详细

[动态规划]UVA10405 - Longest Common Subsequence

时间:2014-04-16 16:10:00      阅读:297      评论:0      收藏:0      [点我收藏+]

 

Problem C: Longest Common Subsequence

Sequence 1: bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 

Sequence 2: bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣 


Given two sequences of characters, print the length of the longest common subsequence of both sequences. For example, the longest common subsequence of the following two sequences:

abcdgh
aedfhr
is adh of length 3.

Input consists of pairs of lines. The first line of a pair contains the first string and the second line contains the second string. Each string is on a separate line and consists of at most 1,000 characters

For each subsequent pair of input lines, output a line containing one integer number which satisfies the criteria stated above.

Sample input

a1b2c3d4e
zz1yy2xx3ww4vv
abcdgh
aedfhr
abcdefghijklmnopqrstuvwxyz
a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0
abcdefghijklmnzyxwvutsrqpo
opqrstuvwxyzabcdefghijklmn

Output for the sample input

4
3
26
14

Problem Setter: Piotr Rudnicki

题意:求两个字符串的最长匹配子串。

思路:动态规划的典型题目。比较基础。

#include<iostream>
#include<cstring>
#include<string>

using namespace std;

int arry[1010][1010];

int main()
    {
        string str1,str2;
        while(getline(cin,str1))
            {
                getline(cin,str2);
                int i,j,k;
                memset(arry,0,sizeof(arry));
                int len1=str1.size(),len2=str2.size();
                for(i=1;i<=len1;i++)
                    {
                        for(j=1;j<=len2;j++)
                            {
                                if(str1[i-1]==str2[j-1]) arry[i][j]=arry[i-1][j-1]+1;
                                else arry[i][j]=max(arry[i-1][j],arry[i][j-1]);
                            }
                    }
                cout<<arry[len1][len2]<<endl;
            }
        return 0;
    }


[动态规划]UVA10405 - Longest Common Subsequence,布布扣,bubuko.com

[动态规划]UVA10405 - Longest Common Subsequence

原文:http://blog.csdn.net/zju_ziqin/article/details/23758555

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!