编程题:最长公共子串
一个序列中去掉若干(也可以不去掉)元素剩下的部分称为其子序列。对于给定的序列X = <$$x_1,x_2,…,x_m$$>,称序列Z = <$$z_1,z_2,…,z_k$$>为X的一个子序列,仅当在X中存在一个递增序号序列$$ <i_1,i_2,…,i_k>$$,对所有的j(1,2,…,k)满足 $$x_{i_j}$$= $$z_j $$。例如,Z = <a,b,f,c>是X = <a,b,c,f,b,c> 的一个子序列,X中相应的序号序列为 <1,2,4,6>。要求输入两个字符串,求它们的最长公共子序列(最长公共子串)及其长度。
### 输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。
### 输出格式:
对于每组测试,输出两行,第一行是最长公共子串的长度,第二行是最长公共子串(以第一个串中字符的出现次序优先,参看输出样例)。
### 输入样例:
in
2
abcfbc
abfcab
abfcab
abcfbc
### 输出样例:
out
4
abcb
4
abfc
答案:若无答案欢迎评论
### 输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。
### 输出格式:
对于每组测试,输出两行,第一行是最长公共子串的长度,第二行是最长公共子串(以第一个串中字符的出现次序优先,参看输出样例)。
### 输入样例:
in
2
abcfbc
abfcab
abfcab
abcfbc
### 输出样例:
out
4
abcb
4
abfc
答案:若无答案欢迎评论