Problem4312--§2 9 公共子序列

4312: §2 9 公共子序列

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

我们称序列 $Z=\{z_1,z_2,...,z_k\}$ 是序列 $X=\{x_1,x_2,...,x_m\}$ 的子序列当且仅当存在严格上升的序列 $\{i_1,i_2,...,i_k\}$,使得对 $j=1,2,...,k$,有 $x_{ij}=z_{j}$。比如 $Z=\{a,b,f,c\}$ 是 $X=\{a,b,c,f,b,c\}$ 的子序列。
现在给出两个序列 $X$ 和 $Y$,你的任务是找到 $X$ 和 $Y$ 的最大公共子序列,也就是说要找到一个最长的序列 $Z$,使得 $Z$ 既是 $X$ 的子序列也是 $Y$ 的子序列。

Input

输入包括多组测试数据。每组数据包括一行,给出两个长度不超过 $200$ 的字符串,表示两个序列。两个字符串之间由若干个空格隔开。

Output

对每组输入数据,输出一行,给出两个序列的最大公共子序列的长度。

Sample 1 Input

abcfbc abfcab
programming contest 
abcd mnp

Sample 1 Output

4
2
0

Source/Category

基础算法 4.120.动态规划