算法导论 练习题 15.4-3
来源:互联网 发布:it资讯 编辑:程序博客网 时间:2024/06/17 04:42
#include <stdio.h>#include <stdlib.h>#include <string.h>int lcsLength(int **c,char *x,char *y,int i,int j){if(i<0 || j<0)return -1;if(c[i][j] != -1)return c[i][j];if(x[i-1]==y[j-1]){int a=lcsLength(c,x,y,i-1,j-1);c[i][j]=a+1;}else{int up=lcsLength(c,x,y,i-1,j);int left=lcsLength(c,x,y,i,j-1);if(up>=left)c[i][j]=up;elsec[i][j]=left;}return c[i][j];}int** initC(char *x,char *y){int xlen=strlen(x);int ylen=strlen(y);int **c=(int**)malloc((xlen+1)*sizeof(int*));for(int i=0;i<xlen+1;i++){c[i]=(int*)malloc((ylen+1)*sizeof(int));}for(int i=0;i<xlen+1;i++)for(int j=0;j<ylen+1;j++)c[i][j]=-1;for(int i=0;i<xlen+1;i++)c[i][0]=0;for(int j=0;j<ylen+1;j++)c[0][j]=0;return c;}void printLCS(int **c,char *x,char *y) { int xlen=strlen(x); int ylen=strlen(y); int i=xlen,j=ylen; char *s=(char*)malloc((xlen)*sizeof(char)); while(i>=1 && j>=1) { if(x[i-1]==y[j-1]) { s[i-1]=x[i-1]; i--; j--; } else if(c[i][j]==c[i-1][j]) { s[i-1]='*'; i--; } else j--; } for(;i<xlen;i++) { if(s[i]!='*') printf("%c ",s[i]); } printf("\n");} void printC(int **c,int xlen,int ylen){for(int i=1;i<xlen+1;i++){for(int j=1;j<ylen+1;j++){if(c[i][j]==-1)printf("%d ",c[i][j]);elseprintf("%d ",c[i][j]);}printf("\n");}}void main(){char *x="ABCBDAB";char *y="BDCABA";int **c=initC(x,y);lcsLength(c,x,y,strlen(x),strlen(y));printLCS(c,x,y);//printC(c,strlen(x),strlen(y));getchar();}
阅读全文
0 0
- 算法导论 练习题 15.4-3
- 算法导论 练习题 15.4-5
- 算法导论 练习题 2.3-3
- 算法导论 练习题 3.2-3
- 算法导论 练习题 4.2-3
- 算法导论 练习题 4.3-3
- 算法导论 练习题 4.4-3
- 算法导论 练习题 5.3-3
- 算法导论 练习题 6.3-3
- 算法导论 练习题 6.4-3
- 算法导论 练习题 6.5-3
- 算法导论 练习题 8.1-3
- 算法导论 练习题 9.2-3
- 算法导论 练习题 10.4-3
- 算法导论 练习题 11.1-3
- 算法导论 练习题 11.3-3
- 算法导论 练习题 12.3-3
- 算法导论 练习题 13.1-3
- App开发架构指南(谷歌官方文档译文)
- Linux系统find命令使用大全
- system V 共享内存
- IEEE-754标准
- How to solve:util.NativeCodeLoader: Unable to load native-hadoop library for your platform ??
- 算法导论 练习题 15.4-3
- python2.7爬虫学习笔记(一)---Urllib库的使用
- win7电脑关机后鼠标灯还在亮怎么解决
- C++ 选择排序、冒泡排序、插入排序
- windows程序设计——开始、Unicode 简介
- Java ResourceBundle读取properies配置文件
- WinDbg分析DUMP文件
- ES6语法(9)
- Kotlin---android官方开发语言使用入门