📄 最大公共子序列.cpp
字号:
#include<stdio.h>
#include<iostream.h>
int LCS(char s1[20],char s2[20],int n1,int n2)
{
int i,j;
int L[20][20];
for (i=0;i<=n1;i++)
L[i][0]=0;
for (j=0;j<=n2;j++)
L[0][j]=0;
for (i=1;i<=n1;i++)
{
for (j=1;j<=n2;j++)
{
if(s1[i-1]==s2[j-1])
L[i][j]=L[i-1][j-1]+1;
else
{
if (L[i-1][j]>L[i][j-1])
L[i][j]=L[i-1][j];
else
L[i][j]=L[i][j-1] ;
}
}
}
return L[n1][n2];
}
void main()
{
int n1,n2,i;
char r;
cout<<"********************************************************************************"<<endl;
cout<<"题目:最长公共子序列!"<<endl;
cout<<"作者:040640319 付斌"<<endl;
cout<<"说明:无"<<endl;
cout<<"********************************************************************************"<<endl;
do{
cout<<"请输入第一串字符长度,n1="<<endl;
cin>>n1;
cout<<"请输入第二串字符长度,n2="<<endl;
cin>>n2;
//char L[3][3];
char s1[20],s2[20];
for (i=0;i<20;i++)
{
s1[i]=0;
s2[i]=0;
}
cout<<"请输入第一个字符串"<<endl;
for(i=0;i<n1;i++)
cin>>s1[i];
cout<<"请出入第二个字符串"<<endl;
for(i=0;i<n2;i++)
cin>>s2[i];
cout<<"公共子序列长度为:"<<LCS(s1,s2,n1,n2)<<endl;
cout<<"是否继续?(y/n)"<<endl;
cin>>r;
}
while(r=='Y'||r=='y');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -