最长公共子序列
来源:互联网 发布:linux怎么设置用户密码 编辑:程序博客网 时间:2024/05/16 17:42
#include<stdio.h>#include<string.h>char X[100],Y[100];char res[100];int k=0;int func(char x[],char y[],int i,int j){int m,n;if(i==0 || j==0){for(m=0;m<=i;m++)for(n=0;n<=j;n++)if(x[m]==y[n])return 1;return 0;}elseif(x[i]==y[j])return func(x,y,i-1,j-1)+1;else if(func(x,y,i-1,j)>=func(x,y,i,j-1))return func(x,y,i-1,j);elsereturn func(x,y,i,j-1);}void outList(char x[],char y[],int i,int j){int m,n;if(i==0 || j==0){for(m=0;m<=i;m++)for(n=0;n<=j;n++)if(x[m]==y[n]){res[k++]=x[m];return;}return;}elseif(x[i]==y[j]){res[k++]=x[i];outList(x,y,i-1,j-1);}else if(func(x,y,i-1,j)>=func(x,y,i,j-1))outList(x,y,i-1,j);elseoutList(x,y,i,j-1);}int main(){int n1,n2;printf("First List:\n");scanf("%s",X);n1=strlen(X);printf("Second List:\n");scanf("%s",Y);n2=strlen(Y);int sum=0;sum=func(X,Y,n1-1,n2-1);printf("Common List:");outList(X,Y,n1-1,n2-1);for(int i=sum-1;i>=0;i--)printf("%c",res[i]);printf("\nThe length:%d\n",sum);return 0;}
0 0
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- Memcached实战之复制----基于repcached的主从
- 搭建SQLite3嵌入式开发环境
- 黄聪:Python实现Discuz论坛的自动POST登录发贴回帖(转)
- 在Swift中应用Grand Central Dispatch(上)
- 命名保留的一些字符
- 最长公共子序列
- jar包和war包的区别
- jsonp和CORS跨域实现
- Problem 033——UVa 540 - Team Queue
- C#串口协议
- 黄聪:Scrapy 轻松定制网络爬虫
- 在Swift中应用Grand Central Dispatch(下)
- karma+phantomjs+mocha+chai使用心得
- 1005. Spell It Right (20)