-->
当前位置:首页 > 题库 > 正文内容

编程题:最长公共子串

Luz4年前 (2021-11-15)题库747
一个序列中去掉若干(也可以不去掉)元素剩下的部分称为其子序列。对于给定的序列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









答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。