本文主要是介绍7-128 最长公共子串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个序列中去掉若干(也可以不去掉)元素剩下的部分称为其子序列。对于给定的序列X = <x1,x2,…,xm>,称序列Z = <z1,z2,…,zk>为X的一个子序列,仅当在X中存在一个递增序号序列<i1,i2,…,ik>,对所有的j(1,2,…,k)满足 xij= zj。例如,Z = <a,b,f,c>是X = <a,b,c,f,b,c> 的一个子序列,X中相应的序号序列为 <1,2,4,6>。要求输入两个字符串,求它们的最长公共子序列(最长公共子串)及其长度。
输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。
输出格式:
对于每组测试,输出两行,第一行是最长公共子串的长度,第二行是最长公共子串(以第一个串中字符的出现次序优先,参看输出样例)。
输入样例:
3
abcfbc
abfcab
abfcab
abcfbc
zckwkj
zkjwckj
输出样例:
4
abcb
4
abfc
5
zkwkj
这篇关于7-128 最长公共子串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!