402. 最长公共子序列(LCS) 标准IO
时间限制:1000 MS 内存限制:128 MB    算法评级:    状态:

给定两个长度分别为 $N$ 和 $M$ 的字符串 $A$ 和 $B$,求既是 $A$ 的子序列又是 $B$ 的子序列的字符串长度最长是多少。


输入格式

第一行包含两个整数 $N$ 和 $M$。

第二行包含一个长度为 $N$ 的字符串,表示字符串 $A$。

第三行包含一个长度为 $M$ 的字符串,表示字符串 $B$。

字符串均由小写字母构成。


输出格式

输出一个整数,表示最大长度。


数据范围

$1≤N,M≤1000$


样例输入

4 5
acbd
abedc

样例输出

3

提示

 

子序列与子串的区别

子序列:从从字符串中删除一些字符后不更改剩余字符串字符顺序而生成的序列!
子 串:原序列中必须连续的一段!

比如,样例中,共同的子序列为 "abd",长度为 $3$。

代码运行状态:

输出