最长公共子序列

来源:互联网 发布:美国原油库存eia数据 编辑:程序博客网 时间:2024/05/20 09:23
#include<stdio.h>#include<string.h>void Lcs(int i,int j,char *x,char *y,int b[][20]){if(i==0||j==0)return ;if(b[i][j]==1){Lcs(i-1,j-1,x,y,b);printf("%c",x[i-1]);}else if(b[i][j]==2)Lcs(i-1,j,x,y,b);elseLcs(i,j-1,x,y,b);}int main(){char str1[100];char str2[100];int c[100][100];int b[20][20];gets(str1);gets(str2);int m=strlen(str1);int n=strlen(str2);for(int i=1;i<=m;i++)c[i][0]=0;for(int j=1;j<=n;j++)c[0][j]=0;for(i=1;i<=m;i++)for(j=1;j<=n;j++){if(str1[i-1]==str2[j-1]){c[i][j]=c[i-1][j-1]+1;b[i][j]=1;}else if(c[i-1][j]>=c[i][j-1]){c[i][j]=c[i-1][j];b[i][j]=2;}else{c[i][j]=c[i][j-1];b[i][j]=3;}}for(i=1;i<=m;i++){for(j=1;j<=n;j++)printf(" %d",b[i][j]);printf("\n");}//if(str1[0]==str2[0])//printf("%c",str1[0]);//elseLcs(m,n,str1,str2,b);return 0;}

0 0
原创粉丝点击