首页 > 其他 > 详细

LCS的路径打印

时间:2015-11-09 13:56:53      阅读:362      评论:0      收藏:0      [点我收藏+]
 1 for(int i = 1; i <= m; i ++)
 2         for(int j = 1; j <= n; j ++)
 3             if(!strcmp(a[i], b[j])) 
 4                 {
 5                     f[i][j] = f[i-1][j-1] + 1;
 6                     p[i][j] = 1;//赋值
 7                 }
 8             else if(f[i-1][j]>f[i][j-1])
 9                         {
10                             f[i][j] = f[i-1][j];
11                             p[i][j] = 0;//赋值
12                         }
13                         else 
14                         {
15                             f[i][j] = f[i][j-1];
16                             p[i][j] = -1;//赋值
17                         }
 1 void print(int i , int j)//输出
 2 {
 3     if(!i || !j)
 4         return ;
 5     if(p[i][j] == 1)
 6     {
 7         print(i-1,j-1);
 8         if(flag)
 9       printf(" ");
10     else
11       flag = 1;
12     printf("%s", a[i]);
13     }
14     else if(p[i][j] == 0)
15                 print(i-1,j);
16                 else print(i,j-1);
17 }

 

LCS的路径打印

原文:http://www.cnblogs.com/forwin/p/4949713.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!