https://www.nowcoder.com/acm/contest/148/J
写的时候看成了子串,一直tle觉得很不能理解
结束的时候发现是子序列..
瞎眼了...
#include<bits/stdc++.h>
using namespace std;
#define mod 998244353
char s[1111111],t[1111111];
int len1,len2,n;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
len1=0;
for(int i=0;i<n;i++)
{
scanf("%s",t);
len2=strlen(t);
int k=0,j=0;
for(;k<len1&&j<len2;)
{
if(s[k]==t[j])
k++,j++;
else k++;
}
for(;j<len2;j++)
{
s[len1++]=t[j];
}
s[len1]=0;
}
cout<<s<<endl;
}
return 0;
}

本文通过一道编程题解析了如何构建最长公共子序列的过程。针对输入的多个字符串,通过逐字符对比的方式,找出能构成的最长公共子序列,并最终输出该序列。文章详细展示了使用C++实现的具体算法流程。
309

被折叠的 条评论
为什么被折叠?



