1179: 最长公共子序列

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:34 Solved:14

Description

序列:X={A,B,C,B,D,A,B}

序列:Y={B,C,D,B,A}

序列:Z={B,C,D,B}

序列:W={B,C,D}

Z是(X与Y)的最长公共子序列(Longest-Common-Subsequence),而W虽然是X与Y的公共子序列,但是不是最长的!

【最长公共子序列LCS定义】

给定一个序列X={x1,x2,x3...xm},另一个序列Z={z1,z2,z3...zk}为子序列,如果存在X的

一个严格递增下标序列<i1,i2,i3,i4...ik>,使得所有的j=1,2,...,k,有x[i<j>]=z[j]

例如,Z={B,C,D,B}是X={A,B,C,B,D,A,B}一个最长子序列,相应的下标序列为<2,3,5,7>

如果Z同时是Y的最长子序列,那么Z就是X与Y的最长公共子序列

Input

输入两行字符串

Output

输出LCS长度

Sample Input Copy

ABCBDAB
BDCABA

Sample Output Copy

4