📄 1953.cpp
字号:
#include<stdio.h>
#include<string.h>
const int MAXN=205;
char s[MAXN],t[MAXN];
int opt[MAXN][MAXN];
int main()
{
int i,j,k;
int n,m;
while(scanf("%s%s",s,t)!=EOF)
{
n=strlen(s);
m=strlen(t);
for(i=0;i<MAXN;i++){opt[i][0]=0;opt[0][i]=0;}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(s[i-1]==t[j-1])opt[i][j]=opt[i-1][j-1]+1;
else
{
if(opt[i][j-1]>opt[i-1][j])opt[i][j]=opt[i][j-1];
else opt[i][j]=opt[i-1][j];
}
}
char temp[MAXN];int tc=0;
while(n!=0 || m!=0)
{
if(s[n-1]==t[m-1])
{
temp[tc++]=s[n-1];
n--;m--;
}
else if(opt[n][m-1]>=opt[n-1][m] && m>0)
{
temp[tc++]=t[m-1];
m--;
}
else
{
temp[tc++]=s[n-1];
n--;
}
}
for(i=tc-1;i>=0;i--)
printf("%c",temp[i]);
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -